Filecoin (FIL) is currently showing increasing bullish momentum. Technical indicators, including the TD Sequential, have identified a strong upward trend for FIL, creating a wave of optimism among investors and analysts.
Crypto experts reinforce this optimism by citing Filecoin’s solid track record and resilience during market downturns.
Filecoin has proven itself to be a robust and adaptive entity, factors considered to be the main drivers of its current value surge.
As a pioneer in decentralized data storage, Filecoin offers innovative and relevant solutions, sustaining investor interest.
This technology not only introduces new ways to store and manage data but also presents a promising economic model within the crypto ecosystem.
Market optimism towards Filecoin is not only based on current trends but also on the long-term potential of this decentralized data storage technology.
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
ero
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link
link