Code Py

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 107

- [**URL**](https://developer.mozilla.

org/en-US/docs/Web/API/URL) —
Replacing/server_kick"discord" const pipeline = promisify(Stream.pipeline) export
async function createApp({
bot_add./discord.com ;dipsan_server.connect:.roles->Bot/done
';server/name: group_bump.kick.ban.mute.TimeOut.warn.sent''
appPath: string
packageManager: PackageManager
example?: string
examplePath?: string
typescript?: boolean
}): Promise<void> {
let repoInfo: RepoInfo | undefined
const template = typescript ? 'typescript' : 'default' if (error.code !==
'ERR_INVALID_URL') {
console.error(error)
process.exit(1)const program = new Commander.Command(packageJson.name)#
testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# local env files


.env*.local

# vercel
.vercel/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
}

module.exports = nextConfig bot server(logging in(TOKEN))


WindowsError.__base__.exe(ewom discord("TOKEN"))

if processed_info is None:
raise YTDLError('Couldn\'t fetch `{}`'.
'Couldn\'t find anything that matches `{}`'ial).format(search))

webpage_url = process_info['webpage_url']
partial = functools.partial(cls.ytdl.extract_info,
webpage_url,
download=False)
processed_info = await
raise YTDLError(loop.run_in_executor(None, partformat(webpage_url))
if 'entries' not in processed_info:
info = processed_info
else:
info = None
while info is None:
try:
info = processed_info['entries'].pop(0)
except IndexError:
raise YTDLError(
'Couldn\'t retrieve any matches for `{}`'.format(
webpage_url))

return cls(ctx,
discord.FFmpegPCMAudio(info['url'], **cls.FFMPEG_OPTIONS),
data=info)

@staticmethod
def parse_duration(duration: int):
minutes, seconds = divmod(duration, 60)
hours, minutes = divmod(minutes, 60)
days, hours = divmod(hours, 24)

duration = []
if days > 0:
duration.append('{} days'.format(days))
if hours > 0:
duration.append('{} hours'.format(hours))
if minutes > 0:
duration.append('{} minutes'.format(minutes))
if seconds > 0:
duration.append('{} seconds'.format(seconds))

return ', '.join(duration)

class Song:
__slots__ = ('source', 'requester')

def __init__(self, source: YTDLSource):


self.source = source
self.requester = source.requester

def create_embed(self):
embed = (discord.Embed(
title='Now playing',
description='```css\n{0.source.title}\n```'.format(self),
color=discord.Color.blurple()).add_field(
name='Duration', value=self.source.duration).add_field(
name='Requested by',
value=self.requester.mention).add_field(
name='Uploader',
value='[{0.source.uploader}]({0.source.uploader_url})'.
format(self)).add_field(
name='URL',
value='[Click]({0.source.url})'.format(self)).
set_thumbnail(url=self.source.thumbnail))

return embed
class SongQueue(asyncio.Queue):
def __getitem__(self, item):
if isinstance(item, slice):
return list(
itertools.islice(self._queue, item.start, item.stop,
item.step))
else:
return self._queue[item]

def __iter__(self):
return self._queue.__iter__()

def __len__(self):
return self.qsize()

def clear(self):
self._queue.clear()

def shuffle(self):
random.shuffle(self._queue)

def remove(self, index: int):


del self._queue[index]

class VoiceState:
def __init__(self, bot: commands.Bot, ctx: commands.Context):
self.bot = bot
self._ctx = ctx

self.current = None
self.voice = None
self.next = asyncio.Event()
self.songs = SongQueue()

self._loop = False
self._volume = 0.5
self.skip_votes = set()

self.audio_player = bot.loop.create_task(self.audio_player_task())

def __del__(self):
self.audio_player.cancel()

@property
def loop(self):
return self._loop

@loop.setter
def loop(self, value: bool):
self._loop = value

@property
def volume(self):
return self._volume

@volume.setter
def volume(self, value: float):
self._volume = value

@property
def is_playing(self):
return self.voice and self.current

async def audio_player_task(self):


while True:
self.next.clear()

if not self.loop:
# Try to get the next song within 3 minutes.
# If no song will be added to the queue in time,
# the player will disconnect due to performance
# reasons.
try:
async with timeout(180): # 3 minutes
self.current = await self.songs.get()
except asyncio.TimeoutError:
self.bot.loop.create_task(self.stop())
return

self.current.source.volume = self._volume
self.voice.play(self.current.source, after=self.play_next_song)
await self.current.source.channel.send(
embed=self.current.create_embed())

await self.next.wait()

def play_next_song(self, error=None):


if error:
raise VoiceError(str(error))

self.next.set()

def skip(self):
self.skip_votes.clear()

if self.is_playing:
self.voice.stop()

async def stop(self):


self.songs.clear()

if self.voice:
await self.voice.disconnect()
self.voice = None

class Music(commands.Cog):
def __init__(self, bot: commands.Bot):
self.bot = bot
self.voice_states = {}

def get_voice_state(self, ctx: commands.Context):


state = self.voice_states.get(ctx.guild.id)
if not state:
state = VoiceState(self.bot, ctx)
self.voice_states[ctx.guild.id] = state
return state

def cog_unload(self):
for state in self.voice_states.values():
self.bot.loop.create_task(state.stop())

def cog_check(self, ctx: commands.Context):


if not ctx.guild:
raise commands.NoPrivateMessage(
'This command can\'t be used in DM channels.')

return True

async def cog_before_invoke(self, ctx: commands.Context):


ctx.voice_state = self.get_voice_state(ctx)

async def cog_command_error(self, ctx: commands.Context,


error: commands.CommandError):
await ctx.send('An error occurred: {}'.format(str(error)))

@commands.command(name='join', invoke_without_subcommand=True)
async def _join(self, ctx: commands.Context):
"""Joins a voice channel."""

destination = ctx.author.voice.channel
if ctx.voice_state.voice:
await ctx.voice_state.voice.move_to(destination)
return

ctx.voice_state.voice = await destination.connect()

@commands.command(name='summon')
@commands.has_permissions(manage_guild=True)
async def _summon(self,
ctx: commands.Context,
*,
channel: discord.VoiceChannel = None):
"""Summons the bot to a voice channel.

If no channel was specified, it joins your channel.


"""

if not channel and not ctx.author.voice:


raise VoiceError(
'You are neither connected to a voice channel nor specified a
channel to join.'
)

destination = channel or ctx.author.voice.channel


if ctx.voice_state.voice:
await ctx.voice_state.voice.move_to(destination)
return

ctx.voice_state.voice = await destination.connect()

@commands.command(name='leave', aliases=['disconnect'])
@commands.has_permissions(manage_guild=True)
async def _leave(self, ctx: commands.Context):
"""Clears the queue and leaves the voice channel."""

if not ctx.voice_state.voice:
return await ctx.send('Not connected to any voice channel.')

await ctx.voice_state.stop()
del self.voice_states[ctx.guild.id]

@commands.command(name='volume')
async def _volume(self, ctx: commands.Context, *, volume: int):
"""Sets the volume of the player."""

if not ctx.voice_state.is_playing:
return await ctx.send('Nothing being played at the moment.')

if 0 > volume > 100:


return await ctx.send('Volume must be between 0 and 100')

ctx.voice_state.volume = volume / 100


await ctx.send('Volume of the player set to {}%'.format(volume))

@commands.command(name='now', aliases=['current', 'playing'])


async def _now(self, ctx: commands.Context):
"""Displays the currently playing song."""

await ctx.send(embed=ctx.voice_state.current.create_embed())

@commands.command(name='pause')
@commands.has_permissions(manage_guild=True)
async def _pause(self, ctx: commands.Context):
"""Pauses the currently playing song."""

if ctx.voice_state.is_playing and ctx.voice_state.voice.is_playing():


ctx.voice_state.voice.pause()
await ctx.message.add_reaction('⏯')

@commands.command(name='resume')
@commands.has_permissions(manage_guild=True)
async def _resume(self, ctx: commands.Context):
"""Resumes a currently paused song."""

if ctx.voice_state.is_playing and ctx.voice_state.voice.is_paused():


ctx.voice_state.voice.resume()
await ctx.message.add_reaction('⏯')

@commands.command(name='stop')
@commands.has_permissions(manage_guild=True)
async def _stop(self, ctx: commands.Context):
"""Stops playing song and clears the queue."""

ctx.voice_state.songs.clear()

if ctx.voice_state.is_playing:
ctx.voice_state.voice.stop()
await ctx.message.add_reaction('⏹')

@commands.command(name='skip')
async def _skip(self, ctx: commands.Context):
"""Vote to skip a song. The requester can automatically skip.
3 skip votes are needed for the song to be skipped.
"""

if not ctx.voice_state.is_playing:
return await ctx.send('Not playing any music right now...')

voter = ctx.message.author
if voter == ctx.voice_state.current.requester:
await ctx.message.add_reaction('⏭')
ctx.voice_state.skip()

elif voter.id not in ctx.voice_state.skip_votes:


ctx.voice_state.skip_votes.add(voter.id)
total_votes = len(ctx.voice_state.skip_votes)

if total_votes >= 3:
await ctx.message.add_reaction('⏭')
ctx.voice_state.skip()
else:
await ctx.send('Skip vote added, currently at **{}/3**'.format(
total_votes))

else:
await ctx.send('You have already voted to skip this song.')

@commands.command(name='queue')
async def _queue(self, ctx: commands.Context, *, page: int = 1):
"""Shows the player's queue.

You can optionally specify the page to show. Each page contains 10
elements.
"""

if len(ctx.voice_state.songs) == 0:
return await ctx.send('Empty queue.')

items_per_page = 10
pages = math.ceil(len(ctx.voice_state.songs) / items_per_page)

start = (page - 1) * items_per_page


end = start + items_per_page

queue = ''
for i, song in enumerate(ctx.voice_state.songs[start:end],
start=start):
queue += '`{0}.` [**{1.source.title}**]({1.source.url})\n'.format(
i + 1, song)

embed = (discord.Embed(description='**{} tracks:**\n\n{}'.format(


len(ctx.voice_state.songs), queue)).set_footer(
text='Viewing page {}/{}'.format(page, pages)))
await ctx.send(embed=embed)

@commands.command(name='shuffle')
async def _shuffle(self, ctx: commands.Context):
"""Shuffles the queue."""

if len(ctx.voice_state.songs) == 0:
return await ctx.send('Empty queue.')
ctx.voice_state.songs.shuffle()
await ctx.message.add_reaction('✅')

@commands.command(name='remove')
async def _remove(self, ctx: commands.Context, index: int):
"""Removes a song from the queue at a given index."""

if len(ctx.voice_state.songs) == 0:
return await ctx.send('Empty queue.')

ctx.voice_state.songs.remove(index - 1)
await ctx.message.add_reaction('✅')

@commands.command(name='loop')
async def _loop(self, ctx: commands.Context):
"""Loops the currently playing song.

Invoke this command again to unloop the song.


"""

if not ctx.voice_state.is_playing:
return await ctx.send('Nothing being played at the moment.')

# Inverse boolean value to loop and unloop.


ctx.voice_state.loop = not ctx.voice_state.loop
await ctx.message.add_reaction('✅')

@commands.command(name='play')
async def _play(self, ctx: commands.Context, *, search: str):
"""Plays a song.

If there are songs in the queue, this will be queued until the
other songs finished playing.

This command automatically searches from various sites if no URL is


provided.
A list of these sites can be found here:
https://rg3.github.io/youtube-dl/supportedsites.html
"""

if not ctx.voice_state.voice:
await ctx.invoke(self._join)

async with ctx.typing():


try:
source = await YTDLSource.create_source(ctx,
search,
loop=self.bot.loop)
except YTDLError as e:
await ctx.send(
'An error occurred while processing this request: {}'.
format(str(e)))
else:
song = Song(source)

await ctx.voice_state.songs.put(song)
await ctx.send('Enqueued {}'.format(str(source)))
@_join.before_invoke
@_play.before_invoke
async def ensure_voice_state(self, ctx: commands.Context):
if not ctx.author.voice or not ctx.author.voice.channel:
raise commands.CommandError(
'You are not connected to any voice channel.')

if ctx.voice_client:
if ctx.voice_client.channel != ctx.author.voice.channel:
raise commands.CommandError(
'Bot is already in a voice channel.')

bot = commands.Bot('music.', description='Yet another music bot.')


bot.add_cog(Music(bot))

@bot.event
async def on_ready():
print('Logged in as:\n{0.user.name}\n{0.user.id}'.format(bot))

bot.discord.run
bot.run(os.getenv("TOKEN"))
discord.js
bot.server/hecker/discord/bot/server
bot.server(discord server('TOKEN'))
bot.server(discord profile)
bot.server(WindowsError.__dictoffset__discord('TOKEN'))
bot.server(Set Discord)
my_secret = os.environ['dhimal@dipsan']
*, ::after, ::before {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: transparent;
}:root {
--blue: #007bff;
--indigo: #6610f2;
--purple: #6f42c1;
--pink: #e83e8c;
--red: #dc3545;
--orange: #fd7e14;
--yellow: #ffc107;
--green: #28a745;
--teal: #20c997;
--cyan: #17a2b8;
--white: #fff;
--gray: #6c757d;
--gray-dark: #343a40;
--primary: #007bff;
--secondary: #6c757d;
--success: #28a745;
--info: #17a2b8;
--warning: #ffc107;
--danger: #dc3545;
--light: #f8f9fa;
--dark: #343a40;
--breakpoint-xs: 0;
--breakpoint-sm: 576px;
--breakpoint-md: 768px;
--breakpoint-lg: 992px;
--breakpoint-xl: 1200px;
--font-family-sans-serif: -apple-system,BlinkMacSystemFont,"Segoe
UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe
UI Emoji","Segoe UI Symbol","Noto Color Emoji";
--font-family-monospace: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation
Mono","Courier New",monospace;
}TOKEN=<your bot token>.env
{
"name": "mosic",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@derhuerst/http-basic": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/@derhuerst/http-basic/-/http-basic-
8.2.0.tgz",
"integrity": "sha512-
v1cqPUpFjU8DInW4YkC9caGKy8kUkqz0z10yCHawkxgpaJPId0F5xKi8fUY5rqC58F9Muz9T136jNReZQH9
xIw==",
"requires": {
"caseless": "^0.12.0",
"concat-stream": "^1.6.2",
"http-response-object": "^3.0.1",
"parse-cache-control": "^1.0.1"
}
},
"@types/node": {
"version": "10.17.28",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz",
"integrity": "sha512-
dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619I
iCQ=="
},
"agent-base": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz",
"integrity":
"sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsS
W2YxM8QYKVg==",
"requires": {
"debug": "4"
}
},
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity":
"sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/
bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
"concat-stream": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-
1.6.2.tgz",
"integrity":
"sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8O
LoGmSADlrCw==",
"requires": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^2.2.2",
"typedarray": "^0.0.6"
}
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-
1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity":
"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZL
qLNS8RSZXZw==",
"requires": {
"ms": "^2.1.1"
}
},
"env-paths": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz",
"integrity":
"sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mb
u6Xj0uBh7gA=="
},
"ffmpeg-static": {
"version": "4.2.7",
"resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-
4.2.7.tgz",
"integrity":
"sha512-SGnOr2d+k0/9toRIv9t5/hN/DMYbm5XMtG0wVwGM1tEyXJAD6dbcWOEvfHq4LOySm9uykKL6LMC
4eVPeteUnbQ==",
"requires": {
"@derhuerst/http-basic": "^8.2.0",
"env-paths": "^2.2.0",
"https-proxy-agent": "^5.0.0",
"progress": "^2.0.3"
}
},
"http-response-object": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/http-response-object/-/http-response-
object-3.0.2.tgz",
"integrity":
"sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvO
KXTfiv6q9RA==",
"requires": {
"@types/node": "^10.0.3"
}
},
"https-proxy-agent": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-
agent-5.0.0.tgz",
"integrity": "sha512-
EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rC
FbA==",
"requires": {
"agent-base": "6",
"debug": "4"
}
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity":
"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa
4dYeZIQqewQ=="
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity":
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUT
Evbs1PEaH2w=="
},
"parse-cache-control": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-
control-1.0.1.tgz",
"integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104="
},
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-
nextick-args-2.0.1.tgz",
"integrity":
"sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypsc
TKiKJFFn1ag=="
},
"progress": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
"integrity":
"sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VP
aMrZlF9V9sA=="
},
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-
2.3.7.tgz",
"integrity":
"sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/
n3yZ9VBUbp4zz/mX8hmYPw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity":
"sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/
wPtojys4G6+g=="
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-
1.1.1.tgz",
"integrity":
"sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHy
PyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
},
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-
1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
}
}
}
[[package]]
name = "aiohttp"
version = "3.6.2"
description = "Async http client/server framework (asyncio)"
category = "main"
optional = false
python-versions = ">=3.5.3"

[package.dependencies]
async-timeout = ">=3.0,<4.0"
attrs = ">=17.3.0"
chardet = ">=2.0,<4.0"
multidict = ">=4.5,<5.0"
yarl = ">=1.0,<2.0"

[package.extras]
speedups = ["aiodns", "brotlipy", "cchardet"]

[[package]]
name = "async-timeout"
version = "3.0.1"
description = "Timeout context manager for asyncio programs"
category = "main"
optional = false
python-versions = ">=3.5.3"

[[package]]
name = "attrs"
version = "19.3.0"
description = "Classes Without Boilerplate"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"

[package.extras]
azure-pipelines = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six",
"zope.interface", "pytest-azurepipelines"]
dev = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six",
"zope.interface", "sphinx", "pre-commit"]
docs = ["sphinx", "zope.interface"]
tests = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six",
"zope.interface"]

[[package]]
name = "cffi"
version = "1.14.2"
description = "Foreign Function Interface for Python calling C code."
category = "main"
optional = false
python-versions = "*"

[package.dependencies]
pycparser = "*"

[[package]]
name = "chardet"
version = "3.0.4"
description = "Universal encoding detector for Python 2 and 3"
category = "main"
optional = false
python-versions = "*"

[[package]]
name = "click"
version = "7.1.2"
description = "Composable command line interface toolkit"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"

[[package]]
name = "discord"
version = "1.0.1"
description = "A mirror package for discord.py. Please install that instead."
category = "main"
optional = false
python-versions = "*"

[package.dependencies]
"discord.py" = ">=1.0.1"

[[package]]
name = "discord.py"
version = "1.4.1"
description = "A Python wrapper for the Discord API"
category = "main"
optional = false
python-versions = ">=3.5.3"

[package.dependencies]
aiohttp = ">=3.6.0,<3.7.0"

[package.extras]
docs = ["sphinx (==1.8.5)", "sphinxcontrib-trio (==1.1.1)", "sphinxcontrib-
websupport"]
voice = ["PyNaCl (==1.3.0)"]

[[package]]
name = "express"
version = "1.0"
description = "express"
category = "main"
optional = false
python-versions = "*"

[[package]]
name = "flask"
version = "1.1.2"
description = "A simple framework for building complex web applications."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"

[package.dependencies]
click = ">=5.1"
itsdangerous = ">=0.24"
Jinja2 = ">=2.10.1"
Werkzeug = ">=0.15"

[package.extras]
dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes",
"sphinxcontrib-log-cabinet", "sphinx-issues"]
docs = ["sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-
issues"]
dotenv = ["python-dotenv"]

[[package]]
name = "idna"
version = "2.10"
description = "Internationalized Domain Names in Applications (IDNA)"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"

[[package]]
name = "itsdangerous"
version = "1.1.0"
description = "Various helpers to pass data to untrusted environments and back."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"

[[package]]
name = "jinja2"
version = "2.11.2"
description = "A very fast and expressive template engine."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"

[package.dependencies]
MarkupSafe = ">=0.23"

[package.extras]
i18n = ["Babel (>=0.8)"]

[[package]]
name = "markupsafe"
version = "1.1.1"
description = "Safely add untrusted strings to HTML/XML markup."
category = "main"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"

[[package]]
name = "multidict"
version = "4.7.6"
description = "multidict implementation"
category = "main"
optional = false
python-versions = ">=3.5"

[[package]]
name = "pycparser"
version = "2.20"
description = "C parser in Python"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"

[[package]]
name = "pynacl"
version = "1.4.0"
description = "Python binding to the Networking and Cryptography (NaCl) library"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"

[package.dependencies]
cffi = ">=1.4.1"
six = "*"

[package.extras]
docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"]
tests = ["pytest (>=3.2.1,!=3.3.0)", "hypothesis (>=3.27.0)"]

[[package]]
name = "six"
version = "1.15.0"
description = "Python 2 and 3 compatibility utilities"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"

[[package]]
name = "werkzeug"
version = "1.0.1"
description = "The comprehensive WSGI web application library."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"

[package.extras]
dev = ["pytest", "pytest-timeout", "coverage", "tox", "sphinx", "pallets-sphinx-
themes", "sphinx-issues"]
watchdog = ["watchdog"]

[[package]]
name = "yarl"
version = "1.5.1"
description = "Yet another URL library"
category = "main"
optional = false
python-versions = ">=3.5"

[package.dependencies]
idna = ">=2.0"
multidict = ">=4.0"

[[package]]
name = "youtube-dl"
version = "2020.7.28"
description = "YouTube video downloader"
category = "main"
optional = false
python-versions = "*"

[metadata]
lock-version = "1.1"
python-versions = "^3.8"
content-hash = "d420db07e4ecda96f395b66bf425f9e787c540904482964ea44143867c2d00b8"

[metadata.files]
aiohttp = [
{file = "aiohttp-3.6.2-cp35-cp35m-macosx_10_13_x86_64.whl", hash =
"sha256:1e984191d1ec186881ffaed4581092ba04f7c61582a177b187d3a2f07ed9719e"},
{file = "aiohttp-3.6.2-cp35-cp35m-manylinux1_x86_64.whl", hash =
"sha256:50aaad128e6ac62e7bf7bd1f0c0a24bc968a0c0590a726d5a955af193544bcec"},
{file = "aiohttp-3.6.2-cp36-cp36m-macosx_10_13_x86_64.whl", hash =
"sha256:65f31b622af739a802ca6fd1a3076fd0ae523f8485c52924a89561ba10c49b48"},
{file = "aiohttp-3.6.2-cp36-cp36m-manylinux1_x86_64.whl", hash =
"sha256:ae55bac364c405caa23a4f2d6cfecc6a0daada500274ffca4a9230e7129eac59"},
{file = "aiohttp-3.6.2-cp36-cp36m-win32.whl", hash =
"sha256:344c780466b73095a72c616fac5ea9c4665add7fc129f285fbdbca3cccf4612a"},
{file = "aiohttp-3.6.2-cp36-cp36m-win_amd64.whl", hash =
"sha256:4c6efd824d44ae697814a2a85604d8e992b875462c6655da161ff18fd4f29f17"},
{file = "aiohttp-3.6.2-cp37-cp37m-macosx_10_13_x86_64.whl", hash =
"sha256:2f4d1a4fdce595c947162333353d4a44952a724fba9ca3205a3df99a33d1307a"},
{file = "aiohttp-3.6.2-cp37-cp37m-manylinux1_x86_64.whl", hash =
"sha256:6206a135d072f88da3e71cc501c59d5abffa9d0bb43269a6dcd28d66bfafdbdd"},
{file = "aiohttp-3.6.2-cp37-cp37m-win32.whl", hash =
"sha256:b778ce0c909a2653741cb4b1ac7015b5c130ab9c897611df43ae6a58523cb965"},
{file = "aiohttp-3.6.2-cp37-cp37m-win_amd64.whl", hash =
"sha256:32e5f3b7e511aa850829fbe5aa32eb455e5534eaa4b1ce93231d00e2f76e5654"},
{file = "aiohttp-3.6.2-py3-none-any.whl", hash =
"sha256:460bd4237d2dbecc3b5ed57e122992f60188afe46e7319116da5eb8a9dfedba4"},
{file = "aiohttp-3.6.2.tar.gz", hash =
"sha256:259ab809ff0727d0e834ac5e8a283dc5e3e0ecc30c4d80b3cd17a4139ce1f326"},
]
async-timeout = [
{file = "async-timeout-3.0.1.tar.gz", hash =
"sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f"},
{file = "async_timeout-3.0.1-py3-none-any.whl", hash =
"sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3"},
]
attrs = [
{file = "attrs-19.3.0-py2.py3-none-any.whl", hash =
"sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c"},
{file = "attrs-19.3.0.tar.gz", hash =
"sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"},
]
cffi = [
{file = "cffi-1.14.2-cp27-cp27m-macosx_10_9_x86_64.whl", hash =
"sha256:da9d3c506f43e220336433dffe643fbfa40096d408cb9b7f2477892f369d5f82"},
{file = "cffi-1.14.2-cp27-cp27m-manylinux1_i686.whl", hash =
"sha256:23e44937d7695c27c66a54d793dd4b45889a81b35c0751ba91040fe825ec59c4"},
{file = "cffi-1.14.2-cp27-cp27m-manylinux1_x86_64.whl", hash =
"sha256:0da50dcbccd7cb7e6c741ab7912b2eff48e85af217d72b57f80ebc616257125e"},
{file = "cffi-1.14.2-cp27-cp27m-win32.whl", hash =
"sha256:76ada88d62eb24de7051c5157a1a78fd853cca9b91c0713c2e973e4196271d0c"},
{file = "cffi-1.14.2-cp27-cp27m-win_amd64.whl", hash =
"sha256:15a5f59a4808f82d8ec7364cbace851df591c2d43bc76bcbe5c4543a7ddd1bf1"},
{file = "cffi-1.14.2-cp27-cp27mu-manylinux1_i686.whl", hash =
"sha256:e4082d832e36e7f9b2278bc774886ca8207346b99f278e54c9de4834f17232f7"},
{file = "cffi-1.14.2-cp27-cp27mu-manylinux1_x86_64.whl", hash =
"sha256:57214fa5430399dffd54f4be37b56fe22cedb2b98862550d43cc085fb698dc2c"},
{file = "cffi-1.14.2-cp35-cp35m-macosx_10_9_x86_64.whl", hash =
"sha256:6843db0343e12e3f52cc58430ad559d850a53684f5b352540ca3f1bc56df0731"},
{file = "cffi-1.14.2-cp35-cp35m-manylinux1_i686.whl", hash =
"sha256:577791f948d34d569acb2d1add5831731c59d5a0c50a6d9f629ae1cefd9ca4a0"},
{file = "cffi-1.14.2-cp35-cp35m-manylinux1_x86_64.whl", hash =
"sha256:8662aabfeab00cea149a3d1c2999b0731e70c6b5bac596d95d13f643e76d3d4e"},
{file = "cffi-1.14.2-cp35-cp35m-win32.whl", hash =
"sha256:837398c2ec00228679513802e3744d1e8e3cb1204aa6ad408b6aff081e99a487"},
{file = "cffi-1.14.2-cp35-cp35m-win_amd64.whl", hash =
"sha256:bf44a9a0141a082e89c90e8d785b212a872db793a0080c20f6ae6e2a0ebf82ad"},
{file = "cffi-1.14.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash =
"sha256:29c4688ace466a365b85a51dcc5e3c853c1d283f293dfcc12f7a77e498f160d2"},
{file = "cffi-1.14.2-cp36-cp36m-manylinux1_i686.whl", hash =
"sha256:99cc66b33c418cd579c0f03b77b94263c305c389cb0c6972dac420f24b3bf123"},
{file = "cffi-1.14.2-cp36-cp36m-manylinux1_x86_64.whl", hash =
"sha256:65867d63f0fd1b500fa343d7798fa64e9e681b594e0a07dc934c13e76ee28fb1"},
{file = "cffi-1.14.2-cp36-cp36m-win32.whl", hash =
"sha256:f5033952def24172e60493b68717792e3aebb387a8d186c43c020d9363ee7281"},
{file = "cffi-1.14.2-cp36-cp36m-win_amd64.whl", hash =
"sha256:7057613efefd36cacabbdbcef010e0a9c20a88fc07eb3e616019ea1692fa5df4"},
{file = "cffi-1.14.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash =
"sha256:6539314d84c4d36f28d73adc1b45e9f4ee2a89cdc7e5d2b0a6dbacba31906798"},
{file = "cffi-1.14.2-cp37-cp37m-manylinux1_i686.whl", hash =
"sha256:672b539db20fef6b03d6f7a14b5825d57c98e4026401fce838849f8de73fe4d4"},
{file = "cffi-1.14.2-cp37-cp37m-manylinux1_x86_64.whl", hash =
"sha256:95e9094162fa712f18b4f60896e34b621df99147c2cee216cfa8f022294e8e9f"},
{file = "cffi-1.14.2-cp37-cp37m-win32.whl", hash =
"sha256:b9aa9d8818c2e917fa2c105ad538e222a5bce59777133840b93134022a7ce650"},
{file = "cffi-1.14.2-cp37-cp37m-win_amd64.whl", hash =
"sha256:e4b9b7af398c32e408c00eb4e0d33ced2f9121fd9fb978e6c1b57edd014a7d15"},
{file = "cffi-1.14.2-cp38-cp38-macosx_10_9_x86_64.whl", hash =
"sha256:e613514a82539fc48291d01933951a13ae93b6b444a88782480be32245ed4afa"},
{file = "cffi-1.14.2-cp38-cp38-manylinux1_i686.whl", hash =
"sha256:9b219511d8b64d3fa14261963933be34028ea0e57455baf6781fe399c2c3206c"},
{file = "cffi-1.14.2-cp38-cp38-manylinux1_x86_64.whl", hash =
"sha256:c0b48b98d79cf795b0916c57bebbc6d16bb43b9fc9b8c9f57f4cf05881904c75"},
{file = "cffi-1.14.2-cp38-cp38-win32.whl", hash =
"sha256:15419020b0e812b40d96ec9d369b2bc8109cc3295eac6e013d3261343580cc7e"},
{file = "cffi-1.14.2-cp38-cp38-win_amd64.whl", hash =
"sha256:12a453e03124069b6896107ee133ae3ab04c624bb10683e1ed1c1663df17c13c"},
{file = "cffi-1.14.2.tar.gz", hash =
"sha256:ae8f34d50af2c2154035984b8b5fc5d9ed63f32fe615646ab435b05b132ca91b"},
]
chardet = [
{file = "chardet-3.0.4-py2.py3-none-any.whl", hash =
"sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"},
{file = "chardet-3.0.4.tar.gz", hash =
"sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"},
]
click = [
{file = "click-7.1.2-py2.py3-none-any.whl", hash =
"sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"},
{file = "click-7.1.2.tar.gz", hash =
"sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"},
]
discord = [
{file = "discord-1.0.1-py3-none-any.whl", hash =
"sha256:9d4debb4a37845543bd4b92cb195bc53a302797333e768e70344222857ff1559"},
{file = "discord-1.0.1.tar.gz", hash =
"sha256:ff6653655e342e7721dfb3f10421345fd852c2a33f2cca912b1c39b3778a9429"},
]
"discord.py" = [
{file = "discord.py-1.4.1-py3-none-any.whl", hash =
"sha256:98ea3096a3585c9c379209926f530808f5fcf4930928d8cfb579d2562d119570"},
{file = "discord.py-1.4.1.tar.gz", hash =
"sha256:f9decb3bfa94613d922376288617e6a6f969260923643e2897f4540c34793442"},
]
express = [
{file = "express-1.0.zip", hash =
"sha256:9f16cc3e162264dc07fccfe92698bd5fee54d633e0076854b9a560fc4eba86a7"},
]
flask = [
{file = "Flask-1.1.2-py2.py3-none-any.whl", hash =
"sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557"},
{file = "Flask-1.1.2.tar.gz", hash =
"sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060"},
]
idna = [
{file = "idna-2.10-py2.py3-none-any.whl", hash =
"sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
{file = "idna-2.10.tar.gz", hash =
"sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
]
itsdangerous = [
{file = "itsdangerous-1.1.0-py2.py3-none-any.whl", hash =
"sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"},
{file = "itsdangerous-1.1.0.tar.gz", hash =
"sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19"},
]
jinja2 = [
{file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash =
"sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"},
{file = "Jinja2-2.11.2.tar.gz", hash =
"sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"},
]
markupsafe = [
{file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash =
"sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash =
"sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash =
"sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash =
"sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash =
"sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"},
{file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash =
"sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"},
{file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash =
"sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash =
"sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash =
"sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash =
"sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash =
"sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash =
"sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash =
"sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash =
"sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash =
"sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash =
"sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash =
"sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash =
"sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash =
"sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash =
"sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash =
"sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_i686.whl", hash =
"sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash =
"sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash =
"sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash =
"sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash =
"sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash =
"sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash =
"sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash =
"sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash =
"sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_i686.whl", hash =
"sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash =
"sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash =
"sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash =
"sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash =
"sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
{file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash =
"sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash =
"sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash =
"sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_i686.whl", hash =
"sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash =
"sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash =
"sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b"},
{file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash =
"sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"},
{file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash =
"sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"},
{file = "MarkupSafe-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash =
"sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_i686.whl", hash =
"sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash =
"sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_i686.whl", hash =
"sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash =
"sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash =
"sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"},
{file = "MarkupSafe-1.1.1-cp39-cp39-win32.whl", hash =
"sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39"},
{file = "MarkupSafe-1.1.1-cp39-cp39-win_amd64.whl", hash =
"sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8"},
{file = "MarkupSafe-1.1.1.tar.gz", hash =
"sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
]
multidict = [
{file = "multidict-4.7.6-cp35-cp35m-macosx_10_14_x86_64.whl", hash =
"sha256:275ca32383bc5d1894b6975bb4ca6a7ff16ab76fa622967625baeebcf8079000"},
{file = "multidict-4.7.6-cp35-cp35m-manylinux1_x86_64.whl", hash =
"sha256:1ece5a3369835c20ed57adadc663400b5525904e53bae59ec854a5d36b39b21a"},
{file = "multidict-4.7.6-cp35-cp35m-win32.whl", hash =
"sha256:5141c13374e6b25fe6bf092052ab55c0c03d21bd66c94a0e3ae371d3e4d865a5"},
{file = "multidict-4.7.6-cp35-cp35m-win_amd64.whl", hash =
"sha256:9456e90649005ad40558f4cf51dbb842e32807df75146c6d940b6f5abb4a78f3"},
{file = "multidict-4.7.6-cp36-cp36m-macosx_10_14_x86_64.whl", hash =
"sha256:e0d072ae0f2a179c375f67e3da300b47e1a83293c554450b29c900e50afaae87"},
{file = "multidict-4.7.6-cp36-cp36m-manylinux1_x86_64.whl", hash =
"sha256:3750f2205b800aac4bb03b5ae48025a64e474d2c6cc79547988ba1d4122a09e2"},
{file = "multidict-4.7.6-cp36-cp36m-win32.whl", hash =
"sha256:f07acae137b71af3bb548bd8da720956a3bc9f9a0b87733e0899226a2317aeb7"},
{file = "multidict-4.7.6-cp36-cp36m-win_amd64.whl", hash =
"sha256:6513728873f4326999429a8b00fc7ceddb2509b01d5fd3f3be7881a257b8d463"},
{file = "multidict-4.7.6-cp37-cp37m-macosx_10_14_x86_64.whl", hash =
"sha256:feed85993dbdb1dbc29102f50bca65bdc68f2c0c8d352468c25b54874f23c39d"},
{file = "multidict-4.7.6-cp37-cp37m-manylinux1_x86_64.whl", hash =
"sha256:fcfbb44c59af3f8ea984de67ec7c306f618a3ec771c2843804069917a8f2e255"},
{file = "multidict-4.7.6-cp37-cp37m-win32.whl", hash =
"sha256:4538273208e7294b2659b1602490f4ed3ab1c8cf9dbdd817e0e9db8e64be2507"},
{file = "multidict-4.7.6-cp37-cp37m-win_amd64.whl", hash =
"sha256:d14842362ed4cf63751648e7672f7174c9818459d169231d03c56e84daf90b7c"},
{file = "multidict-4.7.6-cp38-cp38-macosx_10_14_x86_64.whl", hash =
"sha256:c026fe9a05130e44157b98fea3ab12969e5b60691a276150db9eda71710cd10b"},
{file = "multidict-4.7.6-cp38-cp38-manylinux1_x86_64.whl", hash =
"sha256:51a4d210404ac61d32dada00a50ea7ba412e6ea945bbe992e4d7a595276d2ec7"},
{file = "multidict-4.7.6-cp38-cp38-win32.whl", hash =
"sha256:5cf311a0f5ef80fe73e4f4c0f0998ec08f954a6ec72b746f3c179e37de1d210d"},
{file = "multidict-4.7.6-cp38-cp38-win_amd64.whl", hash =
"sha256:7388d2ef3c55a8ba80da62ecfafa06a1c097c18032a501ffd4cabbc52d7f2b19"},
{file = "multidict-4.7.6.tar.gz", hash =
"sha256:fbb77a75e529021e7c4a8d4e823d88ef4d23674a202be4f5addffc72cbb91430"},
]
pycparser = [
{file = "pycparser-2.20-py2.py3-none-any.whl", hash =
"sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
{file = "pycparser-2.20.tar.gz", hash =
"sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
]
pynacl = [
{file = "PyNaCl-1.4.0-cp27-cp27m-macosx_10_10_x86_64.whl", hash =
"sha256:ea6841bc3a76fa4942ce00f3bda7d436fda21e2d91602b9e21b7ca9ecab8f3ff"},
{file = "PyNaCl-1.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash =
"sha256:d452a6746f0a7e11121e64625109bc4468fc3100452817001dbe018bb8b08514"},
{file = "PyNaCl-1.4.0-cp27-cp27m-win32.whl", hash =
"sha256:2fe0fc5a2480361dcaf4e6e7cea00e078fcda07ba45f811b167e3f99e8cff574"},
{file = "PyNaCl-1.4.0-cp27-cp27m-win_amd64.whl", hash =
"sha256:f8851ab9041756003119368c1e6cd0b9c631f46d686b3904b18c0139f4419f80"},
{file = "PyNaCl-1.4.0-cp27-cp27mu-manylinux1_x86_64.whl", hash =
"sha256:7757ae33dae81c300487591c68790dfb5145c7d03324000433d9a2c141f82af7"},
{file = "PyNaCl-1.4.0-cp35-abi3-macosx_10_10_x86_64.whl", hash =
"sha256:757250ddb3bff1eecd7e41e65f7f833a8405fede0194319f87899690624f2122"},
{file = "PyNaCl-1.4.0-cp35-abi3-manylinux1_x86_64.whl", hash =
"sha256:30f9b96db44e09b3304f9ea95079b1b7316b2b4f3744fe3aaecccd95d547063d"},
{file = "PyNaCl-1.4.0-cp35-abi3-win32.whl", hash =
"sha256:4e10569f8cbed81cb7526ae137049759d2a8d57726d52c1a000a3ce366779634"},
{file = "PyNaCl-1.4.0-cp35-abi3-win_amd64.whl", hash =
"sha256:c914f78da4953b33d4685e3cdc7ce63401247a21425c16a39760e282075ac4a6"},
{file = "PyNaCl-1.4.0-cp35-cp35m-win32.whl", hash =
"sha256:06cbb4d9b2c4bd3c8dc0d267416aaed79906e7b33f114ddbf0911969794b1cc4"},
{file = "PyNaCl-1.4.0-cp35-cp35m-win_amd64.whl", hash =
"sha256:511d269ee845037b95c9781aa702f90ccc36036f95d0f31373a6a79bd8242e25"},
{file = "PyNaCl-1.4.0-cp36-cp36m-win32.whl", hash =
"sha256:11335f09060af52c97137d4ac54285bcb7df0cef29014a1a4efe64ac065434c4"},
{file = "PyNaCl-1.4.0-cp36-cp36m-win_amd64.whl", hash =
"sha256:cd401ccbc2a249a47a3a1724c2918fcd04be1f7b54eb2a5a71ff915db0ac51c6"},
{file = "PyNaCl-1.4.0-cp37-cp37m-win32.whl", hash =
"sha256:8122ba5f2a2169ca5da936b2e5a511740ffb73979381b4229d9188f6dcb22f1f"},
{file = "PyNaCl-1.4.0-cp37-cp37m-win_amd64.whl", hash =
"sha256:537a7ccbea22905a0ab36ea58577b39d1fa9b1884869d173b5cf111f006f689f"},
{file = "PyNaCl-1.4.0-cp38-cp38-win32.whl", hash =
"sha256:9c4a7ea4fb81536c1b1f5cc44d54a296f96ae78c1ebd2311bd0b60be45a48d96"},
{file = "PyNaCl-1.4.0-cp38-cp38-win_amd64.whl", hash =
"sha256:7c6092102219f59ff29788860ccb021e80fffd953920c4a8653889c029b2d420"},
{file = "PyNaCl-1.4.0.tar.gz", hash =
"sha256:54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505"},
]
six = [
{file = "six-1.15.0-py2.py3-none-any.whl", hash =
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
{file = "six-1.15.0.tar.gz", hash =
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
]
werkzeug = [
{file = "Werkzeug-1.0.1-py2.py3-none-any.whl", hash =
"sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43"},
{file = "Werkzeug-1.0.1.tar.gz", hash =
"sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c"},
]
yarl = [
{file = "yarl-1.5.1-cp35-cp35m-macosx_10_14_x86_64.whl", hash =
"sha256:db6db0f45d2c63ddb1a9d18d1b9b22f308e52c83638c26b422d520a815c4b3fb"},
{file = "yarl-1.5.1-cp35-cp35m-manylinux1_x86_64.whl", hash =
"sha256:17668ec6722b1b7a3a05cc0167659f6c95b436d25a36c2d52db0eca7d3f72593"},
{file = "yarl-1.5.1-cp35-cp35m-win32.whl", hash =
"sha256:040b237f58ff7d800e6e0fd89c8439b841f777dd99b4a9cca04d6935564b9409"},
{file = "yarl-1.5.1-cp35-cp35m-win_amd64.whl", hash =
"sha256:f18d68f2be6bf0e89f1521af2b1bb46e66ab0018faafa81d70f358153170a317"},
{file = "yarl-1.5.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash =
"sha256:c52ce2883dc193824989a9b97a76ca86ecd1fa7955b14f87bf367a61b6232511"},
{file = "yarl-1.5.1-cp36-cp36m-manylinux1_x86_64.whl", hash =
"sha256:ce584af5de8830d8701b8979b18fcf450cef9a382b1a3c8ef189bedc408faf1e"},
{file = "yarl-1.5.1-cp36-cp36m-win32.whl", hash =
"sha256:df89642981b94e7db5596818499c4b2219028f2a528c9c37cc1de45bf2fd3a3f"},
{file = "yarl-1.5.1-cp36-cp36m-win_amd64.whl", hash =
"sha256:3a584b28086bc93c888a6c2aa5c92ed1ae20932f078c46509a66dce9ea5533f2"},
{file = "yarl-1.5.1-cp37-cp37m-macosx_10_14_x86_64.whl", hash =
"sha256:da456eeec17fa8aa4594d9a9f27c0b1060b6a75f2419fe0c00609587b2695f4a"},
{file = "yarl-1.5.1-cp37-cp37m-manylinux1_x86_64.whl", hash =
"sha256:bc2f976c0e918659f723401c4f834deb8a8e7798a71be4382e024bcc3f7e23a8"},
{file = "yarl-1.5.1-cp37-cp37m-win32.whl", hash =
"sha256:4439be27e4eee76c7632c2427ca5e73703151b22cae23e64adb243a9c2f565d8"},
{file = "yarl-1.5.1-cp37-cp37m-win_amd64.whl", hash =
"sha256:48e918b05850fffb070a496d2b5f97fc31d15d94ca33d3d08a4f86e26d4e7c5d"},
{file = "yarl-1.5.1-cp38-cp38-macosx_10_14_x86_64.whl", hash =
"sha256:9b930776c0ae0c691776f4d2891ebc5362af86f152dd0da463a6614074cb1b02"},
{file = "yarl-1.5.1-cp38-cp38-manylinux1_x86_64.whl", hash =
"sha256:b3b9ad80f8b68519cc3372a6ca85ae02cc5a8807723ac366b53c0f089db19e4a"},
{file = "yarl-1.5.1-cp38-cp38-win32.whl", hash =
"sha256:f379b7f83f23fe12823085cd6b906edc49df969eb99757f58ff382349a3303c6"},
{file = "yarl-1.5.1-cp38-cp38-win_amd64.whl", hash =
"sha256:9102b59e8337f9874638fcfc9ac3734a0cfadb100e47d55c20d0dc6087fb4692"},
{file = "yarl-1.5.1.tar.gz", hash =
"sha256:c22c75b5f394f3d47105045ea551e08a3e804dc7e01b37800ca35b58f856c3d6"},
]
youtube-dl = [
{file = "youtube_dl-2020.7.28-py2.py3-none-any.whl", hash =
"sha256:c1bf9a20b0bc8cf6489930b96b9830156e2a7e865fc96ef628e97fa37aad8de9"},
{file = "youtube_dl-2020.7.28.tar.gz", hash =
"sha256:4af90dac41dba8b2c8bdce3903177c4ecbc27d75e03a3f08070f9d9decbae829"},
]
language="python3"
run="""
export PATH="$PWD/node_modules/ffmpeg-statimport asyncio
import functools
import itertools
import math
import random
import os
import help
import discord

class VoiceError(Exception):
pass

class YTDLError(Exception):
pass

class YTDLSource(discord.PCMVolumeTransformer):
YTDL_OPTIONS = {
'format': 'bestaudio/best',
'extractaudio': True,
'audioformat': 'mp3',
'outtmpl': '%(extractor)s-%(id)s-%(title)s.%(ext)s',
'restrictfilenames': True,
'noplaylist': True,
'nocheckcertificate': True,
'ignoreerrors': False,
'logtostderr': False,
'quiet': True,
'no_warnings': True,
'default_search': 'auto',
'source_address': '0.0.0.0',
}

FFMPEG_OPTIONS = {
'before_options':
'-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5',
'options': '-vn',
}

ytdl = youtube_dl.YoutubeDL(YTDL_OPTIONS)

def __init__(self,
ctx: commands.Context,
source: discord.FFmpegPCMAudio,
*,
data: dict,
volume: float = 0.5):
super().__init__(source, volume)

self.requester = ctx.author
self.channel = ctx.channel
self.data = data

self.uploader = data.get('uploader')
self.uploader_url = data.get('uploader_url')
date = data.get('upload_date')
self.upload_date = date[6:8] + '.' + date[4:6] + '.' + date[0:4]
self.title = data.get('title')
self.thumbnail = data.get('thumbnail')
self.description = data.get('description')
self.duration = self.parse_duration(int(data.get('duration')))
self.tags = data.get('tags')
self.url = data.get('webpage_url')
self.views = data.get('view_count')
self.likes = data.get('like_count')
self.dislikes = data.get('dislike_count')
self.stream_url = data.get('url')

def __str__(self):
return '**{0.title}** by **{0.uploader}**'.format(self)

@classmethod
async def create_source(cls,
ctx: commands.Context,
search: str,
*,
loop: asyncio.BaseEventLoop = None):
loop = loop or asyncio.get_event_loop()

partial = functools.partial(cls.ytdl.extract_info,
search,
download=False,
process=False)
data = await loop.run_in_executor(None, partial)

if data is None:
raise YTDLError(
'Couldn\'t find anything that matches `{}`'.format(search))

if 'entries' not in data:


process_info = data
else:
process_info = None
for entry in data['entries']:
if entry:
process_info = entry
break

if process_info is None:
raise YTDLError(
'Couldn\'t find anything that matches `{}`'.format(search))

webpage_url = process_info['webpage_url']
partial = functools.partial(cls.ytdl.extract_info,
webpage_url,
download=False)
processed_info = await loop.run_in_executor(None, partial)

if processed_info is None:
raise YTDLError('Couldn\'t fetch `{}`'.format(webpage_url))

if 'entries' not in processed_info:


info = processed_info
else:
info = None
while info is None:
try:
info = processed_info['entries'].pop(0)
except IndexError:
raise YTDLError(
'Couldn\'t retrieve any matches for `{}`'.format(
webpage_url))

return cls(ctx,
discord.FFmpegPCMAudio(info['url'], **cls.FFMPEG_OPTIONS),
data=info)

@staticmethod
def parse_duration(duration: int):
minutes, seconds = divmod(duration, 60)
hours, minutes = divmod(minutes, 60)
days, hours = divmod(hours, 24)

duration = []
if days > 0:
duration.append('{} days'.format(days))
if hours > 0:
duration.append('{} hours'.format(hours))
if minutes > 0:
duration.append('{} minutes'.format(minutes))
if seconds > 0:
duration.append('{} seconds'.format(seconds))

return ', '.join(duration)


class Song:
__slots__ = ('source', 'requester')

def __init__(self, source: YTDLSource):


self.source = source
self.requester = source.requester

def create_embed(self):
embed = (discord.Embed(
title='Now playing',
description='```css\n{0.source.title}\n```'.format(self),
color=discord.Color.blurple()).add_field(
name='Duration', value=self.source.duration).add_field(
name='Requested by',
value=self.requester.mention).add_field(
name='Uploader',
value='[{0.source.uploader}]({0.source.uploader_url})'.
format(self)).add_field(
name='URL',
value='[Click]({0.source.url})'.format(self)).
set_thumbnail(url=self.source.thumbnail))

return embed

class SongQueue(asyncio.Queue):
def __getitem__(self, item):
if isinstance(item, slice):
return list(
itertools.islice(self._queue, item.start, item.stop,
item.step))
else:
return self._queue[item]

def __iter__(self):
return self._queue.__iter__()

def __len__(self):
return self.qsize()

def clear(self):
self._queue.clear()

def shuffle(self):
random.shuffle(self._queue)

def remove(self, index: int):


del self._queue[index]

class VoiceState:
def __init__(self, bot: commands.Bot, ctx: commands.Context):
self.bot = bot
self._ctx = ctx

self.current = None
self.voice = None
self.next = asyncio.Event()
self.songs = SongQueue()

self._loop = False
self._volume = 0.5
self.skip_votes = set()

self.audio_player = bot.loop.create_task(self.audio_player_task())

def __del__(self):
self.audio_player.cancel()

@property
def loop(self):
return self._loop

@loop.setter
def loop(self, value: bool):
self._loop = value

@property
def volume(self):
return self._volume

@volume.setter
def volume(self, value: float):
self._volume = value

@property
def is_playing(self):
return self.voice and self.current

async def audio_player_task(self):


while True:
self.next.clear()

if not self.loop:
# Try to get the next song within 3 minutes.
# If no song will be added to the queue in time,
# the player will disconnect due to performance
# reasons.
try:
async with timeout(180): # 3 minutes
self.current = await self.songs.get()
except asyncio.TimeoutError:
self.bot.loop.create_task(self.stop())
return

self.current.source.volume = self._volume
self.voice.play(self.current.source, after=self.play_next_song)
await self.current.source.channel.send(
embed=self.current.create_embed())

await self.next.wait()

def play_next_song(self, error=None):


if error:
raise VoiceError(str(error))

self.next.set()
def skip(self):
self.skip_votes.clear()

if self.is_playing:
self.voice.stop()

async def stop(self):


self.songs.clear()

if self.voice:
await self.voice.disconnect()
self.voice = None

class Music(commands.Cog):
def __init__(self, bot: commands.Bot):
self.bot = bot
self.voice_states = {}

def get_voice_state(self, ctx: commands.Context):


state = self.voice_states.get(ctx.guild.id)
if not state:
state = VoiceState(self.bot, ctx)
self.voice_states[ctx.guild.id] = state

return state

def cog_unload(self):
for state in self.voice_states.values():
self.bot.loop.create_task(state.stop())

def cog_check(self, ctx: commands.Context):


if not ctx.guild:
raise commands.NoPrivateMessage(
'This command can\'t be used in DM channels.')

return True

async def cog_before_invoke(self, ctx: commands.Context):


ctx.voice_state = self.get_voice_state(ctx)

async def cog_command_error(self, ctx: commands.Context,


error: commands.CommandError):
await ctx.send('An error occurred: {}'.format(str(error)))

@commands.command(name='join', invoke_without_subcommand=True)
async def _join(self, ctx: commands.Context):
"""Joins a voice channel."""

destination = ctx.author.voice.channel
if ctx.voice_state.voice:
await ctx.voice_state.voice.move_to(destination)
return

ctx.voice_state.voice = await destination.connect()

@commands.command(name='summon')
@commands.has_permissions(manage_guild=True)
async def _summon(self,
ctx: commands.Context,
*,
channel: discord.VoiceChannel = None):
"""Summons the bot to a voice channel.

If no channel was specified, it joins your channel.


"""

if not channel and not ctx.author.voice:


raise VoiceError(
'You are neither connected to a voice channel nor specified a
channel to join.'
)

destination = channel or ctx.author.voice.channel


if ctx.voice_state.voice:
await ctx.voice_state.voice.move_to(destination)
return

ctx.voice_state.voice = await destination.connect()

@commands.command(name='leave', aliases=['disconnect'])
@commands.has_permissions(manage_guild=True)
async def _leave(self, ctx: commands.Context):
"""Clears the queue and leaves the voice channel."""

if not ctx.voice_state.voice:
return await ctx.send('Not connected to any voice channel.')

await ctx.voice_state.stop()
del self.voice_states[ctx.guild.id]

@commands.command(name='volume')
async def _volume(self, ctx: commands.Context, *, volume: int):
"""Sets the volume of the player."""

if not ctx.voice_state.is_playing:
return await ctx.send('Nothing being played at the moment.')

if 0 > volume > 100:


return await ctx.send('Volume must be between 0 and 100')

ctx.voice_state.volume = volume / 100


await ctx.send('Volume of the player set to {}%'.format(volume))

@commands.command(name='now', aliases=['current', 'playing'])


async def _now(self, ctx: commands.Context):
"""Displays the currently playing song."""

await ctx.send(embed=ctx.voice_state.current.create_embed())

@commands.command(name='pause')
@commands.has_permissions(manage_guild=True)
async def _pause(self, ctx: commands.Context):
"""Pauses the currently playing song."""

if ctx.voice_state.is_playing and ctx.voice_state.voice.is_playing():


ctx.voice_state.voice.pause()
await ctx.message.add_reaction('⏯')

@commands.command(name='resume')
@commands.has_permissions(manage_guild=True)
async def _resume(self, ctx: commands.Context):
"""Resumes a currently paused song."""

if ctx.voice_state.is_playing and ctx.voice_state.voice.is_paused():


ctx.voice_state.voice.resume()
await ctx.message.add_reaction('⏯')

@commands.command(name='stop')
@commands.has_permissions(manage_guild=True)
async def _stop(self, ctx: commands.Context):
"""Stops playing song and clears the queue."""

ctx.voice_state.songs.clear()

if ctx.voice_state.is_playing:
ctx.voice_state.voice.stop()
await ctx.message.add_reaction('⏹')

@commands.command(name='skip')
async def _skip(self, ctx: commands.Context):
"""Vote to skip a song. The requester can automatically skip.
3 skip votes are needed for the song to be skipped.
"""

if not ctx.voice_state.is_playing:
return await ctx.send('Not playing any music right now...')

voter = ctx.message.author
if voter == ctx.voice_state.current.requester:
await ctx.message.add_reaction('⏭')
ctx.voice_state.skip()

elif voter.id not in ctx.voice_state.skip_votes:


ctx.voice_state.skip_votes.add(voter.id)
total_votes = len(ctx.voice_state.skip_votes)

if total_votes >= 3:
await ctx.message.add_reaction('⏭')
ctx.voice_state.skip()
else:
await ctx.send('Skip vote added, currently at **{}/3**'.format(
total_votes))

else:
await ctx.send('You have already voted to skip this song.')

@commands.command(name='queue')
async def _queue(self, ctx: commands.Context, *, page: int = 1):
"""Shows the player's queue.

You can optionally specify the page to show. Each page contains 10
elements.
"""

if len(ctx.voice_state.songs) == 0:
return await ctx.send('Empty queue.')

items_per_page = 10
pages = math.ceil(len(ctx.voice_state.songs) / items_per_page)

start = (page - 1) * items_per_page


end = start + items_per_page

queue = ''
for i, song in enumerate(ctx.voice_state.songs[start:end],
start=start):
queue += '`{0}.` [**{1.source.title}**]({1.source.url})\n'.format(
i + 1, song)

embed = (discord.Embed(description='**{} tracks:**\n\n{}'.format(


len(ctx.voice_state.songs), queue)).set_footer(
text='Viewing page {}/{}'.format(page, pages)))
await ctx.send(embed=embed)

@commands.command(name='shuffle')
async def _shuffle(self, ctx: commands.Context):
"""Shuffles the queue."""

if len(ctx.voice_state.songs) == 0:
return await ctx.send('Empty queue.')

ctx.voice_state.songs.shuffle()
await ctx.message.add_reaction('✅')

@commands.command(name='remove')
async def _remove(self, ctx: commands.Context, index: int):
"""Removes a song from the queue at a given index."""

if len(ctx.voice_state.songs) == 0:
return await ctx.send('Empty queue.')

ctx.voice_state.songs.remove(index - 1)
await ctx.message.add_reaction('✅')

@commands.command(name='loop')
async def _loop(self, ctx: commands.Context):
"""Loops the currently playing song.

Invoke this command again to unloop the song.


"""

if not ctx.voice_state.is_playing:
return await ctx.send('Nothing being played at the moment.')

# Inverse boolean value to loop and unloop.


ctx.voice_state.loop = not ctx.voice_state.loop
await ctx.message.add_reaction('✅')

@commands.command(name='play')
async def _play(self, ctx: commands.Context, *, search: str):
"""Plays a song.

If there are songs in the queue, this will be queued until the
other songs finished playing.
This command automatically searches from various sites if no URL is
provided.
A list of these sites can be found here:
https://rg3.github.io/youtube-dl/supportedsites.html
"""

if not ctx.voice_state.voice:
await ctx.invoke(self._join)

async with ctx.typing():


try:
source = await YTDLSource.create_source(ctx,
search,
loop=self.bot.loop)
except YTDLError as e:
await ctx.send(
'An error occurred while processing this request: {}'.
format(str(e)))
else:
song = Song(source)

await ctx.voice_state.songs.put(song)
await ctx.send('Enqueued {}'.format(str(source)))

@_join.before_invoke
@_play.before_invoke
async def ensure_voice_state(self, ctx: commands.Context):
if not ctx.author.voice or not ctx.author.voice.channel:
raise commands.CommandError(
'You are not connected to any voice channel.')

if ctx.voice_client:
if ctx.voice_client.channel != ctx.author.voice.channel:
raise commands.CommandError(
'Bot is already in a voice channel.')

bot = commands.Bot('music.', description='Yet another music bot.')


bot.add_cog(Music(bot))

@bot.event
async def on_ready():
print('Logged in as:\n{0.user.name}\n{0.user.id}'.format(bot))

bot.discord.run
bot.run(os.getenv("TOKEN"))
discord.js
bot.server/hecker/discord/bot/server
bot.server(discord server('TOKEN'))
bot.server(discord profile)
bot.server(WindowsError.__dictoffset__discord('TOKEN'))
bot.server(Set Discord)
my_secret = os.environ['dhimal@dipsan']ic:$PATH"
python main.py
"""
bot.server
{
"name": "mosic",
"version": "1.0.0",
"description": "A simple music bot written in discord.py using youtube-dl. Use
this as an example or a base for your own bot and extend it as you want.",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"ffmpeg-static": "^4.2.7"
},
"devDependencies": {}
}
# Discord.py Music Bot

A simple music bot written in discord.py using youtube-dl. Use this as an example
or a base for your own bot and extend it as you want.

Adapted from this


[gist](https://gist.github.com/vbe0201/ade9b80f2d3b64643d854938d40a0a2d), Copyright
(c) 2019 Valentin B.

### Pre-Setup

If you don't already have a discord bot, click


[here](https://discordapp.com/developers/), accept any prompts then click "New
Application" at the top right of the screen. Enter the name of your bot then click
accept. Click on Bot from the panel from the left, then click "Add Bot." When the
prompt appears, click "Yes, do it!"
![Left panel](https://i.imgur.com/hECJYWK.png)

Then, click copy under token to get your bot's token. Your bot's icon can also be
changed by uploading an image.

![Bot token area](https://i.imgur.com/da0ktMC.png)

### Setup

Create a file named `.env`

Add `TOKEN=<your bot token>`

Your .env file should look something like this:

```
TOKEN=<Bot token>
```

### Uptime

To keep your bot alive you need to make this repl into a webserver. The way you do
that is that you `import keep_alive` (file included this repl) and call it
`keep_alive()`.

Now that this repl is a server, all you have to do to keep your bot up is setup
something to ping the site your bot made every 5 minutes or so.

Go to [uptimerobot.com](https://uptimerobot.com/) and create an accout if you dont


have one. After verifying your account, click "Add New Monitor".

+ For Monitor Type select "HTTP(s)"


+ In Friendly Name put the name of your bot
+ For your url, put the url of the website made for your repl.
+ Select any alert contacts you want, then click "Create Monitor"
![Uptime robot example](https://i.imgur.com/Qd9LXEy.png)

Your bot should now be good to go, with near 100% uptime.

getattr(o, name, default) bot.server


import keep_alive.bot
keep_alive()
npm init -y && npm i --save-dev node@16 && npm config set
prefix=$(pwd)/node_modules/node && export PATH=$(pwd)/node_modules/node/bin:$PATH
bot.server(bot backpges)
{
"name": "Dipsan Bot ja C Job"
sleep banghead blush boom bored
confused cry dab dance deredere
disgust drunk eat facepalm fail fly
happy jump lewd like nope
peek pout psycho run sad
scream shrug sing sip smile
smug teehee think thinking vomit wag
wasted yandere
PK###PK###
you need i am so fuuny get your money dont shoot you note 1
foew.bot(Bot Server Discord("TOKEN"))
on: [pull_request]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: preactjs/compressed-size-action@v2
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
build-script: "deploy"
pattern: "./packages/webamp/built/*bundle.min.js"
name": "minesweeper",
"homepage": "https://mines.now.sh",
"version": "0.1.0",
"author": "sh1zuku <shizukuichi@gmail.com>",
"dependencies": {
"lodash.samplesize": "^4.2.0",
"react": "^16.8.3",
"react-dom": "^16.8.3",
"react-scripts": "2.1.5",
"styled-components": "^4.1.3"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"now-build": "react-scripts build"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
]
}
https://mines.now.sh
# See https://help.github.com/articles/ignoring-files/ for more about ignoring
files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
yr=ArithmeticError.log*(discord "tuple")
discord keep_alive
#!/usr/bin/env node
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports,
__webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // identity function for calling harmony imports with the correct
context
/******/ __webpack_require__.i = function(value) { return value; };
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return
Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 549);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {
module.exports = require("path");

/***/ }),
/* 1 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (immutable) */ __webpack_exports__["a"] = __extends;
/* unused harmony export __assign */
/* unused harmony export __rest */
/* unused harmony export __decorate */
/* unused harmony export __param */
/* unused harmony export __metadata */
/* unused harmony export __awaiter */
/* unused harmony export __generator */
/* unused harmony export __exportStar */
/* unused harmony export __values */
/* unused harmony export __read */
/* unused harmony export __spread */
/* unused harmony export __await */
/* unused harmony export __asyncGenerator */
/* unused harmony export __asyncDelegator */
/* unused harmony export __asyncValues */
/* unused harmony export __makeTemplateObject */
/* unused harmony export __importStar */
/* unused harmony export __importDefault */
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
/* global Reflect, Promise */

var extendStatics = function(d, b) {


extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ =
b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};

function __extends(d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new
__());
}

var __assign = function() {


__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] =
s[p];
}
return t;
}
return __assign.apply(this, arguments);
}

function __rest(s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p)
< 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if
(e.indexOf(p[i]) < 0)
t[p[i]] = s[p[i]];
return t;
}

function __decorate(decorators, target, key, desc) {


var c = arguments.length, r = c < 3 ? target : desc === null ? desc =
Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r =
Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r
= (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
}

function __param(paramIndex, decorator) {


return function (target, key) { decorator(target, key, paramIndex); }
}

function __metadata(metadataKey, metadataValue) {


if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(metadataKey, metadataValue);
}

function __awaiter(thisArg, _arguments, P, generator) {


return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e)
{ reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch
(e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new
P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}

function __generator(thisArg, body) {


var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return
t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof
Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] ||
((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) &&
(op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3])))
{ _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op;
break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op);
break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done:
true };
}
}

function __exportStar(m, exports) {


for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}

function __values(o) {
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
if (m) return m.call(o);
return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
}

function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
}

function __spread() {
for (var ar = [], i = 0; i < arguments.length; i++)
ar = ar.concat(__read(arguments[i]));
return ar;
}

function __await(v) {
return this instanceof __await ? (this.v = v, this) : new __await(v);
}

function __asyncGenerator(thisArg, _arguments, generator) {


if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not
defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"),
i[Symbol.asyncIterator] = function () { return this; }, i;
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function
(a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3],
e); } }
function step(r) { r.value instanceof __await ?
Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
function fulfill(value) { resume("next", value); }
function reject(value) { resume("throw", value); }
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0]
[1]); }
}

function __asyncDelegator(o) {
var i, p;
return i = {}, verb("next"), verb("throw", function (e) { throw e; }),
verb("return"), i[Symbol.iterator] = function () { return this; }, i;
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value:
__await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
}

function __asyncValues(o) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not
defined.");
var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) :
o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"),
i[Symbol.asyncIterator] = function () { return this; }, i);
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function
(resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v)
{ resolve({ value: v, done: d }); }, reject); }
}

function __makeTemplateObject(cooked, raw) {


if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value:
raw }); } else { cooked.raw = raw; }
return cooked;
};
function __importStar(mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k))
result[k] = mod[k];
result.default = mod;
return result;
}

function __importDefault(mod) {
return (mod && mod.__esModule) ? mod : { default: mod };
}

/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

exports.__esModule = true;

var _promise = __webpack_require__(227);

var _promise2 = _interopRequireDefault(_promise);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj :


{ default: obj }; }

exports.default = function (fn) {


return function () {
var gen = fn.apply(this, arguments);
return new _promise2.default(function (resolve, reject) {
function step(key, arg) {
try {
var info = gen[key](arg);
var value = info.value;
} catch (error) {
reject(error);
return;
}

if (info.done) {
resolve(value);
} else {
return _promise2.default.resolve(value).then(function (value) {
step("next", value);
}, function (err) {
step("throw", err);
});
}
}

return step("next");
});
};
};
/***/ }),
/* 3 */
/***/ (function(module, exports) {

module.exports = require("util");

/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getFirstSuitableFolder = exports.readFirstAvailableStream =
exports.makeTempDir = exports.hardlinksWork = exports.writeFilePreservingEol =
exports.getFileSizeOnDisk = exports.walk = exports.symlink = exports.find =
exports.readJsonAndFile = exports.readJson = exports.readFileAny =
exports.hardlinkBulk = exports.copyBulk = exports.unlink = exports.glob =
exports.link = exports.chmod = exports.lstat = exports.exists = exports.mkdirp =
exports.stat = exports.access = exports.rename = exports.readdir = exports.realpath
= exports.readlink = exports.writeFile = exports.open = exports.readFileBuffer =
exports.lockQueue = exports.constants = undefined;

var _asyncToGenerator2;

function _load_asyncToGenerator() {
return _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(2));
}

let buildActionsForCopy = (() => {


var _ref = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (queue, events, possibleExtraneous, reporter) {

//
let build = (() => {
var _ref5 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (data) {
const src = data.src,
dest = data.dest,
type = data.type;

const onFresh = data.onFresh || noop;


const onDone = data.onDone || noop;

// TODO https://github.com/yarnpkg/yarn/issues/3751
// related to bundled dependencies handling
if (files.has(dest.toLowerCase())) {
reporter.verbose(`The case-insensitive file ${dest} shouldn't be copied
twice in one bulk copy`);
} else {
files.add(dest.toLowerCase());
}

if (type === 'symlink') {


yield mkdirp((_path || _load_path()).default.dirname(dest));
onFresh();
actions.symlink.push({
dest,
linkname: src
});
onDone();
return;
}

if (events.ignoreBasenames.indexOf((_path ||
_load_path()).default.basename(src)) >= 0) {
// ignored file
return;
}

const srcStat = yield lstat(src);


let srcFiles;

if (srcStat.isDirectory()) {
srcFiles = yield readdir(src);
}

let destStat;
try {
// try accessing the destination
destStat = yield lstat(dest);
} catch (e) {
// proceed if destination doesn't exist, otherwise error
if (e.code !== 'ENOENT') {
throw e;
}
}

// if destination exists
if (destStat) {
const bothSymlinks = srcStat.isSymbolicLink() &&
destStat.isSymbolicLink();
const bothFolders = srcStat.isDirectory() && destStat.isDirectory();
const bothFiles = srcStat.isFile() && destStat.isFile();

// EINVAL access errors sometimes happen which shouldn't because node


shouldn't be giving
// us modes that aren't valid. investigate this, it's generally safe to
proceed.

/* if (srcStat.mode !== destStat.mode) {


try {
await access(dest, srcStat.mode);
} catch (err) {}
} */

if (bothFiles && artifactFiles.has(dest)) {


// this file gets changed during build, likely by a custom install
script. Don't bother checking it.
onDone();
reporter.verbose(reporter.lang('verboseFileSkipArtifact', src));
return;
}
if (bothFiles && srcStat.size === destStat.size && (0, (_fsNormalized ||
_load_fsNormalized()).fileDatesEqual)(srcStat.mtime, destStat.mtime)) {
// we can safely assume this is the same file
onDone();
reporter.verbose(reporter.lang('verboseFileSkip', src, dest,
srcStat.size, +srcStat.mtime));
return;
}

if (bothSymlinks) {
const srcReallink = yield readlink(src);
if (srcReallink === (yield readlink(dest))) {
// if both symlinks are the same then we can continue on
onDone();
reporter.verbose(reporter.lang('verboseFileSkipSymlink', src, dest,
srcReallink));
return;
}
}

if (bothFolders) {
// mark files that aren't in this folder as possibly extraneous
const destFiles = yield readdir(dest);
invariant(srcFiles, 'src files not initialised');

for (var _iterator4 = destFiles, _isArray4 = Array.isArray(_iterator4),


_i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
var _ref6;

if (_isArray4) {
if (_i4 >= _iterator4.length) break;
_ref6 = _iterator4[_i4++];
} else {
_i4 = _iterator4.next();
if (_i4.done) break;
_ref6 = _i4.value;
}

const file = _ref6;

if (srcFiles.indexOf(file) < 0) {
const loc = (_path || _load_path()).default.join(dest, file);
possibleExtraneous.add(loc);

if ((yield lstat(loc)).isDirectory()) {
for (var _iterator5 = yield readdir(loc), _isArray5 =
Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 :
_iterator5[Symbol.iterator]();;) {
var _ref7;

if (_isArray5) {
if (_i5 >= _iterator5.length) break;
_ref7 = _iterator5[_i5++];
} else {
_i5 = _iterator5.next();
if (_i5.done) break;
_ref7 = _i5.value;
}
const file = _ref7;

possibleExtraneous.add((_path ||
_load_path()).default.join(loc, file));
}
}
}
}
}
}

if (destStat && destStat.isSymbolicLink()) {


yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(dest);
destStat = null;
}

if (srcStat.isSymbolicLink()) {
onFresh();
const linkname = yield readlink(src);
actions.symlink.push({
dest,
linkname
});
onDone();
} else if (srcStat.isDirectory()) {
if (!destStat) {
reporter.verbose(reporter.lang('verboseFileFolder', dest));
yield mkdirp(dest);
}

const destParts = dest.split((_path || _load_path()).default.sep);


while (destParts.length) {
files.add(destParts.join((_path ||
_load_path()).default.sep).toLowerCase());
destParts.pop();
}

// push all files to queue


invariant(srcFiles, 'src files not initialised');
let remaining = srcFiles.length;
if (!remaining) {
onDone();
}
for (var _iterator6 = srcFiles, _isArray6 = Array.isArray(_iterator6),
_i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
var _ref8;

if (_isArray6) {
if (_i6 >= _iterator6.length) break;
_ref8 = _iterator6[_i6++];
} else {
_i6 = _iterator6.next();
if (_i6.done) break;
_ref8 = _i6.value;
}

const file = _ref8;

queue.push({
dest: (_path || _load_path()).default.join(dest, file),
onFresh,
onDone: function (_onDone) {
function onDone() {
return _onDone.apply(this, arguments);
}

onDone.toString = function () {
return _onDone.toString();
};

return onDone;
}(function () {
if (--remaining === 0) {
onDone();
}
}),
src: (_path || _load_path()).default.join(src, file)
});
}
} else if (srcStat.isFile()) {
onFresh();
actions.file.push({
src,
dest,
atime: srcStat.atime,
mtime: srcStat.mtime,
mode: srcStat.mode
});
onDone();
} else {
throw new Error(`unsure how to copy this: ${src}`);
}
});

return function build(_x5) {


return _ref5.apply(this, arguments);
};
})();

const artifactFiles = new Set(events.artifactFiles || []);


const files = new Set();

// initialise events
for (var _iterator = queue, _isArray = Array.isArray(_iterator), _i = 0,
_iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref2;

if (_isArray) {
if (_i >= _iterator.length) break;
_ref2 = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref2 = _i.value;
}

const item = _ref2;


const onDone = item.onDone;
item.onDone = function () {
events.onProgress(item.dest);
if (onDone) {
onDone();
}
};
}
events.onStart(queue.length);

// start building actions


const actions = {
file: [],
symlink: [],
link: []
};

// custom concurrency logic as we're always executing stacks of


CONCURRENT_QUEUE_ITEMS queue items
// at a time due to the requirement to push items onto the queue
while (queue.length) {
const items = queue.splice(0, CONCURRENT_QUEUE_ITEMS);
yield Promise.all(items.map(build));
}

// simulate the existence of some files to prevent considering them extraneous


for (var _iterator2 = artifactFiles, _isArray2 = Array.isArray(_iterator2), _i2
= 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref3;

if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref3 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref3 = _i2.value;
}

const file = _ref3;

if (possibleExtraneous.has(file)) {
reporter.verbose(reporter.lang('verboseFilePhantomExtraneous', file));
possibleExtraneous.delete(file);
}
}

for (var _iterator3 = possibleExtraneous, _isArray3 =


Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 :
_iterator3[Symbol.iterator]();;) {
var _ref4;

if (_isArray3) {
if (_i3 >= _iterator3.length) break;
_ref4 = _iterator3[_i3++];
} else {
_i3 = _iterator3.next();
if (_i3.done) break;
_ref4 = _i3.value;
}

const loc = _ref4;

if (files.has(loc.toLowerCase())) {
possibleExtraneous.delete(loc);
}
}

return actions;
});

return function buildActionsForCopy(_x, _x2, _x3, _x4) {


return _ref.apply(this, arguments);
};
})();

let buildActionsForHardlink = (() => {


var _ref9 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (queue, events, possibleExtraneous, reporter) {

//
let build = (() => {
var _ref13 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (data) {
const src = data.src,
dest = data.dest;

const onFresh = data.onFresh || noop;


const onDone = data.onDone || noop;
if (files.has(dest.toLowerCase())) {
// Fixes issue https://github.com/yarnpkg/yarn/issues/2734
// When bulk hardlinking we have A -> B structure that we want to
hardlink to A1 -> B1,
// package-linker passes that modules A1 and B1 need to be hardlinked,
// the recursive linking algorithm of A1 ends up scheduling files in B1
to be linked twice which will case
// an exception.
onDone();
return;
}
files.add(dest.toLowerCase());

if (events.ignoreBasenames.indexOf((_path ||
_load_path()).default.basename(src)) >= 0) {
// ignored file
return;
}

const srcStat = yield lstat(src);


let srcFiles;

if (srcStat.isDirectory()) {
srcFiles = yield readdir(src);
}

const destExists = yield exists(dest);


if (destExists) {
const destStat = yield lstat(dest);
const bothSymlinks = srcStat.isSymbolicLink() &&
destStat.isSymbolicLink();
const bothFolders = srcStat.isDirectory() && destStat.isDirectory();
const bothFiles = srcStat.isFile() && destStat.isFile();

if (srcStat.mode !== destStat.mode) {


try {
yield access(dest, srcStat.mode);
} catch (err) {
// EINVAL access errors sometimes happen which shouldn't because node
shouldn't be giving
// us modes that aren't valid. investigate this, it's generally safe
to proceed.
reporter.verbose(err);
}
}

if (bothFiles && artifactFiles.has(dest)) {


// this file gets changed during build, likely by a custom install
script. Don't bother checking it.
onDone();
reporter.verbose(reporter.lang('verboseFileSkipArtifact', src));
return;
}

// correct hardlink
if (bothFiles && srcStat.ino !== null && srcStat.ino === destStat.ino) {
onDone();
reporter.verbose(reporter.lang('verboseFileSkip', src, dest,
srcStat.ino));
return;
}

if (bothSymlinks) {
const srcReallink = yield readlink(src);
if (srcReallink === (yield readlink(dest))) {
// if both symlinks are the same then we can continue on
onDone();
reporter.verbose(reporter.lang('verboseFileSkipSymlink', src, dest,
srcReallink));
return;
}
}

if (bothFolders) {
// mark files that aren't in this folder as possibly extraneous
const destFiles = yield readdir(dest);
invariant(srcFiles, 'src files not initialised');

for (var _iterator10 = destFiles, _isArray10 =


Array.isArray(_iterator10), _i10 = 0, _iterator10 = _isArray10 ? _iterator10 :
_iterator10[Symbol.iterator]();;) {
var _ref14;

if (_isArray10) {
if (_i10 >= _iterator10.length) break;
_ref14 = _iterator10[_i10++];
} else {
_i10 = _iterator10.next();
if (_i10.done) break;
_ref14 = _i10.value;
}

const file = _ref14;

if (srcFiles.indexOf(file) < 0) {
const loc = (_path || _load_path()).default.join(dest, file);
possibleExtraneous.add(loc);

if ((yield lstat(loc)).isDirectory()) {
for (var _iterator11 = yield readdir(loc), _isArray11 =
Array.isArray(_iterator11), _i11 = 0, _iterator11 = _isArray11 ? _iterator11 :
_iterator11[Symbol.iterator]();;) {
var _ref15;

if (_isArray11) {
if (_i11 >= _iterator11.length) break;
_ref15 = _iterator11[_i11++];
} else {
_i11 = _iterator11.next();
if (_i11.done) break;
_ref15 = _i11.value;
}

const file = _ref15;

possibleExtraneous.add((_path ||
_load_path()).default.join(loc, file));
}
}
}
}
}
}

if (srcStat.isSymbolicLink()) {
onFresh();
const linkname = yield readlink(src);
actions.symlink.push({
dest,
linkname
});
onDone();
} else if (srcStat.isDirectory()) {
reporter.verbose(reporter.lang('verboseFileFolder', dest));
yield mkdirp(dest);

const destParts = dest.split((_path || _load_path()).default.sep);


while (destParts.length) {
files.add(destParts.join((_path ||
_load_path()).default.sep).toLowerCase());
destParts.pop();
}

// push all files to queue


invariant(srcFiles, 'src files not initialised');
let remaining = srcFiles.length;
if (!remaining) {
onDone();
}
for (var _iterator12 = srcFiles, _isArray12 = Array.isArray(_iterator12),
_i12 = 0, _iterator12 = _isArray12 ? _iterator12 : _iterator12[Symbol.iterator]
();;) {
var _ref16;

if (_isArray12) {
if (_i12 >= _iterator12.length) break;
_ref16 = _iterator12[_i12++];
} else {
_i12 = _iterator12.next();
if (_i12.done) break;
_ref16 = _i12.value;
}

const file = _ref16;

queue.push({
onFresh,
src: (_path || _load_path()).default.join(src, file),
dest: (_path || _load_path()).default.join(dest, file),
onDone: function (_onDone2) {
function onDone() {
return _onDone2.apply(this, arguments);
}

onDone.toString = function () {
return _onDone2.toString();
};

return onDone;
}(function () {
if (--remaining === 0) {
onDone();
}
})
});
}
} else if (srcStat.isFile()) {
onFresh();
actions.link.push({
src,
dest,
removeDest: destExists
});
onDone();
} else {
throw new Error(`unsure how to copy this: ${src}`);
}
});

return function build(_x10) {


return _ref13.apply(this, arguments);
};
})();

const artifactFiles = new Set(events.artifactFiles || []);


const files = new Set();

// initialise events
for (var _iterator7 = queue, _isArray7 = Array.isArray(_iterator7), _i7 = 0,
_iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
var _ref10;

if (_isArray7) {
if (_i7 >= _iterator7.length) break;
_ref10 = _iterator7[_i7++];
} else {
_i7 = _iterator7.next();
if (_i7.done) break;
_ref10 = _i7.value;
}

const item = _ref10;

const onDone = item.onDone || noop;


item.onDone = function () {
events.onProgress(item.dest);
onDone();
};
}
events.onStart(queue.length);

// start building actions


const actions = {
file: [],
symlink: [],
link: []
};

// custom concurrency logic as we're always executing stacks of


CONCURRENT_QUEUE_ITEMS queue items
// at a time due to the requirement to push items onto the queue
while (queue.length) {
const items = queue.splice(0, CONCURRENT_QUEUE_ITEMS);
yield Promise.all(items.map(build));
}

// simulate the existence of some files to prevent considering them extraneous


for (var _iterator8 = artifactFiles, _isArray8 = Array.isArray(_iterator8), _i8
= 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {
var _ref11;

if (_isArray8) {
if (_i8 >= _iterator8.length) break;
_ref11 = _iterator8[_i8++];
} else {
_i8 = _iterator8.next();
if (_i8.done) break;
_ref11 = _i8.value;
}

const file = _ref11;

if (possibleExtraneous.has(file)) {
reporter.verbose(reporter.lang('verboseFilePhantomExtraneous', file));
possibleExtraneous.delete(file);
}
}

for (var _iterator9 = possibleExtraneous, _isArray9 =


Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 :
_iterator9[Symbol.iterator]();;) {
var _ref12;

if (_isArray9) {
if (_i9 >= _iterator9.length) break;
_ref12 = _iterator9[_i9++];
} else {
_i9 = _iterator9.next();
if (_i9.done) break;
_ref12 = _i9.value;
}

const loc = _ref12;

if (files.has(loc.toLowerCase())) {
possibleExtraneous.delete(loc);
}
}

return actions;
});

return function buildActionsForHardlink(_x6, _x7, _x8, _x9) {


return _ref9.apply(this, arguments);
};
})();

let copyBulk = exports.copyBulk = (() => {


var _ref17 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (queue, reporter, _events) {
const events = {
onStart: _events && _events.onStart || noop,
onProgress: _events && _events.onProgress || noop,
possibleExtraneous: _events ? _events.possibleExtraneous : new Set(),
ignoreBasenames: _events && _events.ignoreBasenames || [],
artifactFiles: _events && _events.artifactFiles || []
};

const actions = yield buildActionsForCopy(queue, events,


events.possibleExtraneous, reporter);
events.onStart(actions.file.length + actions.symlink.length +
actions.link.length);

const fileActions = actions.file;

const currentlyWriting = new Map();

yield (_promise || _load_promise()).queue(fileActions, (() => {


var _ref18 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (data) {
let writePromise;
while (writePromise = currentlyWriting.get(data.dest)) {
yield writePromise;
}

reporter.verbose(reporter.lang('verboseFileCopy', data.src, data.dest));


const copier = (0, (_fsNormalized || _load_fsNormalized()).copyFile)(data,
function () {
return currentlyWriting.delete(data.dest);
});
currentlyWriting.set(data.dest, copier);
events.onProgress(data.dest);
return copier;
});

return function (_x14) {


return _ref18.apply(this, arguments);
};
})(), CONCURRENT_QUEUE_ITEMS);

// we need to copy symlinks last as they could reference files we were copying
const symlinkActions = actions.symlink;
yield (_promise || _load_promise()).queue(symlinkActions, function (data) {
const linkname = (_path || _load_path()).default.resolve((_path ||
_load_path()).default.dirname(data.dest), data.linkname);
reporter.verbose(reporter.lang('verboseFileSymlink', data.dest, linkname));
return symlink(linkname, data.dest);
});
});

return function copyBulk(_x11, _x12, _x13) {


return _ref17.apply(this, arguments);
};
})();

let hardlinkBulk = exports.hardlinkBulk = (() => {


var _ref19 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (queue, reporter, _events) {
const events = {
onStart: _events && _events.onStart || noop,
onProgress: _events && _events.onProgress || noop,
possibleExtraneous: _events ? _events.possibleExtraneous : new Set(),
artifactFiles: _events && _events.artifactFiles || [],
ignoreBasenames: []
};

const actions = yield buildActionsForHardlink(queue, events,


events.possibleExtraneous, reporter);
events.onStart(actions.file.length + actions.symlink.length +
actions.link.length);

const fileActions = actions.link;

yield (_promise || _load_promise()).queue(fileActions, (() => {


var _ref20 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (data) {
reporter.verbose(reporter.lang('verboseFileLink', data.src, data.dest));
if (data.removeDest) {
yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(data.dest);
}
yield link(data.src, data.dest);
});
return function (_x18) {
return _ref20.apply(this, arguments);
};
})(), CONCURRENT_QUEUE_ITEMS);

// we need to copy symlinks last as they could reference files we were copying
const symlinkActions = actions.symlink;
yield (_promise || _load_promise()).queue(symlinkActions, function (data) {
const linkname = (_path || _load_path()).default.resolve((_path ||
_load_path()).default.dirname(data.dest), data.linkname);
reporter.verbose(reporter.lang('verboseFileSymlink', data.dest, linkname));
return symlink(linkname, data.dest);
});
});

return function hardlinkBulk(_x15, _x16, _x17) {


return _ref19.apply(this, arguments);
};
})();

let readFileAny = exports.readFileAny = (() => {


var _ref21 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (files) {
for (var _iterator13 = files, _isArray13 = Array.isArray(_iterator13), _i13 =
0, _iterator13 = _isArray13 ? _iterator13 : _iterator13[Symbol.iterator]();;) {
var _ref22;

if (_isArray13) {
if (_i13 >= _iterator13.length) break;
_ref22 = _iterator13[_i13++];
} else {
_i13 = _iterator13.next();
if (_i13.done) break;
_ref22 = _i13.value;
}

const file = _ref22;

if (yield exists(file)) {
return readFile(file);
}
}
return null;
});

return function readFileAny(_x19) {


return _ref21.apply(this, arguments);
};
})();

let readJson = exports.readJson = (() => {


var _ref23 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (loc) {
return (yield readJsonAndFile(loc)).object;
});

return function readJson(_x20) {


return _ref23.apply(this, arguments);
};
})();

let readJsonAndFile = exports.readJsonAndFile = (() => {


var _ref24 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (loc) {
const file = yield readFile(loc);
try {
return {
object: (0, (_map || _load_map()).default)(JSON.parse(stripBOM(file))),
content: file
};
} catch (err) {
err.message = `${loc}: ${err.message}`;
throw err;
}
});

return function readJsonAndFile(_x21) {


return _ref24.apply(this, arguments);
};
})();

let find = exports.find = (() => {


var _ref25 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (filename, dir) {
const parts = dir.split((_path || _load_path()).default.sep);

while (parts.length) {
const loc = parts.concat(filename).join((_path || _load_path()).default.sep);

if (yield exists(loc)) {
return loc;
} else {
parts.pop();
}
}

return false;
});

return function find(_x22, _x23) {


return _ref25.apply(this, arguments);
};
})();

let symlink = exports.symlink = (() => {


var _ref26 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (src, dest) {
if (process.platform !== 'win32') {
// use relative paths otherwise which will be retained if the directory is
moved
src = (_path || _load_path()).default.relative((_path ||
_load_path()).default.dirname(dest), src);
// When path.relative returns an empty string for the current directory, we
should instead use
// '.', which is a valid fs.symlink target.
src = src || '.';
}
try {
const stats = yield lstat(dest);
if (stats.isSymbolicLink()) {
const resolved = dest;
if (resolved === src) {
return;
}
}
} catch (err) {
if (err.code !== 'ENOENT') {
throw err;
}
}

// We use rimraf for unlink which never throws an ENOENT on missing target
yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(dest);

if (process.platform === 'win32') {


// use directory junctions if possible on win32, this requires absolute paths
yield fsSymlink(src, dest, 'junction');
} else {
yield fsSymlink(src, dest);
}
});

return function symlink(_x24, _x25) {


return _ref26.apply(this, arguments);
};
})();

let walk = exports.walk = (() => {


var _ref27 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (dir, relativeDir, ignoreBasenames = new Set()) {
let files = [];

let filenames = yield readdir(dir);


if (ignoreBasenames.size) {
filenames = filenames.filter(function (name) {
return !ignoreBasenames.has(name);
});
}

for (var _iterator14 = filenames, _isArray14 = Array.isArray(_iterator14), _i14


= 0, _iterator14 = _isArray14 ? _iterator14 : _iterator14[Symbol.iterator]();;) {
var _ref28;

if (_isArray14) {
if (_i14 >= _iterator14.length) break;
_ref28 = _iterator14[_i14++];
} else {
_i14 = _iterator14.next();
if (_i14.done) break;
_ref28 = _i14.value;
}

const name = _ref28;

const relative = relativeDir ? (_path ||


_load_path()).default.join(relativeDir, name) : name;
const loc = (_path || _load_path()).default.join(dir, name);
const stat = yield lstat(loc);

files.push({
relative,
basename: name,
absolute: loc,
mtime: +stat.mtime
});

if (stat.isDirectory()) {
files = files.concat((yield walk(loc, relative, ignoreBasenames)));
}
}

return files;
});

return function walk(_x26, _x27) {


return _ref27.apply(this, arguments);
};
})();

let getFileSizeOnDisk = exports.getFileSizeOnDisk = (() => {


var _ref29 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (loc) {
const stat = yield lstat(loc);
const size = stat.size,
blockSize = stat.blksize;

return Math.ceil(size / blockSize) * blockSize;


});

return function getFileSizeOnDisk(_x28) {


return _ref29.apply(this, arguments);
};
})();

let getEolFromFile = (() => {


var _ref30 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (path) {
if (!(yield exists(path))) {
return undefined;
}

const buffer = yield readFileBuffer(path);

for (let i = 0; i < buffer.length; ++i) {


if (buffer[i] === cr) {
return '\r\n';
}
if (buffer[i] === lf) {
return '\n';
}
}
return undefined;
});
return function getEolFromFile(_x29) {
return _ref30.apply(this, arguments);
};
})();

let writeFilePreservingEol = exports.writeFilePreservingEol = (() => {


var _ref31 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (path, data) {
const eol = (yield getEolFromFile(path)) || (_os || _load_os()).default.EOL;
if (eol !== '\n') {
data = data.replace(/\n/g, eol);
}
yield writeFile(path, data);
});

return function writeFilePreservingEol(_x30, _x31) {


return _ref31.apply(this, arguments);
};
})();

let hardlinksWork = exports.hardlinksWork = (() => {


var _ref32 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (dir) {
const filename = 'test-file' + Math.random();
const file = (_path || _load_path()).default.join(dir, filename);
const fileLink = (_path || _load_path()).default.join(dir, filename + '-link');
try {
yield writeFile(file, 'test');
yield link(file, fileLink);
} catch (err) {
return false;
} finally {
yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(file);
yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(fileLink);
}
return true;
});

return function hardlinksWork(_x32) {


return _ref32.apply(this, arguments);
};
})();

// not a strict polyfill for Node's fs.mkdtemp

let makeTempDir = exports.makeTempDir = (() => {


var _ref33 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (prefix) {
const dir = (_path || _load_path()).default.join((_os ||
_load_os()).default.tmpdir(), `yarn-${prefix || ''}-${Date.now()}-$
{Math.random()}`);
yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(dir);
yield mkdirp(dir);
return dir;
});

return function makeTempDir(_x33) {


return _ref33.apply(this, arguments);
};
})();

let readFirstAvailableStream = exports.readFirstAvailableStream = (() => {


var _ref34 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (paths) {
for (var _iterator15 = paths, _isArray15 = Array.isArray(_iterator15), _i15 =
0, _iterator15 = _isArray15 ? _iterator15 : _iterator15[Symbol.iterator]();;) {
var _ref35;

if (_isArray15) {
if (_i15 >= _iterator15.length) break;
_ref35 = _iterator15[_i15++];
} else {
_i15 = _iterator15.next();
if (_i15.done) break;
_ref35 = _i15.value;
}

const path = _ref35;

try {
const fd = yield open(path, 'r');
return (_fs || _load_fs()).default.createReadStream(path, { fd });
} catch (err) {
// Try the next one
}
}
return null;
});

return function readFirstAvailableStream(_x34) {


return _ref34.apply(this, arguments);
};
})();

let getFirstSuitableFolder = exports.getFirstSuitableFolder = (() => {


var _ref36 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)
(function* (paths, mode = constants.W_OK | constants.X_OK) {
const result = {
skipped: [],
folder: null
};

for (var _iterator16 = paths, _isArray16 = Array.isArray(_iterator16), _i16 =


0, _iterator16 = _isArray16 ? _iterator16 : _iterator16[Symbol.iterator]();;) {
var _ref37;

if (_isArray16) {
if (_i16 >= _iterator16.length) break;
_ref37 = _iterator16[_i16++];
} else {
_i16 = _iterator16.next();
if (_i16.done) break;
_ref37 = _i16.value;
}

const folder = _ref37;


try {
yield mkdirp(folder);
yield access(folder, mode);

result.folder = folder;

return result;
} catch (error) {
result.skipped.push({
error,
folder
});
}
}
return result;
});

return function getFirstSuitableFolder(_x35) {


return _ref36.apply(this, arguments);
};
})();

exports.copy = copy;
exports.readFile = readFile;
exports.readFileRaw = readFileRaw;
exports.normalizeOS = normalizeOS;

var _fs;

function _load_fs() {
return _fs = _interopRequireDefault(__webpack_require__(5));
}

var _glob;

function _load_glob() {
return _glob = _interopRequireDefault(__webpack_require__(99));
}

var _os;

function _load_os() {
return _os = _interopRequireDefault(__webpack_require__(46));
}

var _path;

function _load_path() {
return _path = _interopRequireDefault(__webpack_require__(0));
}

var _blockingQueue;

function _load_blockingQueue() {
return _blockingQueue = _interopRequireDefault(__webpack_require__(110));
}

var _promise;
function _load_promise() {
return _promise = _interopRequireWildcard(__webpack_require__(50));
}

var _promise2;

function _load_promise2() {
return _promise2 = __webpack_require__(50);
}

var _map;

function _load_map() {
return _map = _interopRequireDefault(__webpack_require__(29));
}

var _fsNormalized;

function _load_fsNormalized() {
return _fsNormalized = __webpack_require__(218);
}

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; }


else { var newObj = {}; if (obj != null) { for (var key in obj) { if
(Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } }
newObj.default = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj :


{ default: obj }; }

const constants = exports.constants = typeof (_fs ||


_load_fs()).default.constants !== 'undefined' ? (_fs ||
_load_fs()).default.constants : {
R_OK: (_fs || _load_fs()).default.R_OK,
W_OK: (_fs || _load_fs()).default.W_OK,
X_OK: (_fs || _load_fs()).default.X_OK
};

const lockQueue = exports.lockQueue = new (_blockingQueue ||


_load_blockingQueue()).default('fs lock');

const readFileBuffer = exports.readFileBuffer = (0, (_promise2 ||


_load_promise2()).promisify)((_fs || _load_fs()).default.readFile);
const open = exports.open = (0, (_promise2 || _load_promise2()).promisify)((_fs ||
_load_fs()).default.open);
const writeFile = exports.writeFile = (0, (_promise2 ||
_load_promise2()).promisify)((_fs || _load_fs()).default.writeFile);
const readlink = exports.readlink = (0, (_promise2 || _load_promise2()).promisify)
((_fs || _load_fs()).default.readlink);
const realpath = exports.realpath = (0, (_promise2 || _load_promise2()).promisify)
((_fs || _load_fs()).default.realpath);
const readdir = exports.readdir = (0, (_promise2 || _load_promise2()).promisify)
((_fs || _load_fs()).default.readdir);
const rename = exports.rename = (0, (_promise2 || _load_promise2()).promisify)((_fs
|| _load_fs()).default.rename);
const access = exports.access = (0, (_promise2 || _load_promise2()).promisify)((_fs
|| _load_fs()).default.access);
const stat = exports.stat = (0, (_promise2 || _load_promise2()).promisify)((_fs ||
_load_fs()).default.stat);
const mkdirp = exports.mkdirp = (0, (_promise2 || _load_promise2()).promisify)
(__webpack_require__(145));
const exists = exports.exists = (0, (_promise2 || _load_promise2()).promisify)((_fs
|| _load_fs()).default.exists, true);
const lstat = exports.lstat = (0, (_promise2 || _load_promise2()).promisify)((_fs
|| _load_fs()).default.lstat);
const chmod = exports.chmod = (0, (_promise2 || _load_promise2()).promisify)((_fs
|| _load_fs()).default.chmod);
const link = exports.link = (0, (_promise2 || _load_promise2()).promisify)((_fs ||
_load_fs()).default.link);
const glob = exports.glob = (0, (_promise2 || _load_promise2()).promisify)((_glob
|| _load_glob()).default);
exports.unlink = (_fsNormalized || _load_fsNormalized()).unlink;

// fs.copyFile uses the native file copying instructions on the system, performing
much better
// than any JS-based solution and consumes fewer resources. Repeated testing to
fine tune the
// concurrency level revealed 128 as the sweet spot on a quad-core, 16 CPU Intel
system with SSD.

const CONCURRENT_QUEUE_ITEMS = (_fs || _load_fs()).default.copyFile ? 128 : 4;

const fsSymlink = (0, (_promise2 || _load_promise2()).promisify)((_fs ||


_load_fs()).default.symlink);
const invariant = __webpack_require__(9);
const stripBOM = __webpack_require__(160);

const noop = () => {};

function copy(src, dest, reporter) {


return copyBulk([{ src, dest }], reporter);
}

function _readFile(loc, encoding) {


return new Promise((resolve, reject) => {
(_fs || _load_fs()).default.readFile(loc, encoding, function (err, content) {
if (err) {
reject(err);
} else {
resolve(content);
}
});
});
}

function readFile(loc) {
return _readFile(loc, 'utf8').then(normalizeOS);
}

function readFileRaw(loc) {
return _readFile(loc, 'binary');
}

function normalizeOS(body) {
return body.replace(/\r\n/g, '\n');
}
const cr = '\r'.charCodeAt(0);
const lf = '\n'.charCodeAt(0);

/***/ }),
/* 5 */
/***/ (function(module, exports) {

module.exports = require("fs");

/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
class MessageError extends Error {
constructor(msg, code) {
super(msg);
this.code = code;
}

exports.MessageError = MessageError;
class ProcessSpawnError extends MessageError {
constructor(msg, code, process) {
super(msg, code);
this.process = process;
}

exports.ProcessSpawnError = ProcessSpawnError;
class SecurityError extends MessageError {}

exports.SecurityError = SecurityError;
class ProcessTermError extends MessageError {}

exports.ProcessTermError = ProcessTermError;
class ResponseError extends Error {
constructor(msg, responseCode) {
super(msg);
this.responseCode = responseCode;
}

exports.ResponseError = ResponseError;
class OneTimePasswordError extends Error {}
exports.OneTimePasswordError = OneTimePasswordError;

/***/ }),
/* 7 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a",
function() { return Subscriber; });
/* unused harmony export SafeSubscriber */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ =
__webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_isFunction__ =
__webpack_require__(154);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Observer__ =
__webpack_require__(420);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Subscription__ =
__webpack_require__(25);
/* harmony import */ var
__WEBPACK_IMPORTED_MODULE_4__internal_symbol_rxSubscriber__ =
__webpack_require__(321);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__config__ =
__webpack_require__(185);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_hostReportError__ =
__webpack_require__(323);
/** PURE_IMPORTS_START
tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_confi
g,_util_hostReportError PURE_IMPORTS_END */

var Subscriber = /*@__PURE__*/ (function (_super) {


__WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](Subscriber, _super);
function Subscriber(destinationOrNext, error, complete) {
var _this = _super.call(this) || this;
_this.syncErrorValue = null;
_this.syncErrorThrown = false;
_this.syncErrorThrowable = false;
_this.isStopped = false;
_this._parentSubscription = null;
switch (arguments.length) {
case 0:
_this.destination = __WEBPACK_IMPORTED_MODULE_2__Observer__["a" /*
empty */];
break;
case 1:
if (!destinationOrNext) {
_this.destination = __WEBPACK_IMPORTED_MODULE_2__Observer__["a"
/* empty */];
break;
}
if (typeof destinationOrNext === 'object') {
if (destinationOrNext instanceof Subscriber) {
_this.syncErrorThrowable =
destinationOrNext.syncErrorThrowable;
_this.destination = destinationOrNext;
destinationOrNext.add(_this);
}
else {
_this.syncErrorThrowable = true;
_this.destination = new SafeSubscriber(_this,
destinationOrNext);
}
break;
}
default:
_this.syncErrorThrowable = true;
_this.destination = new SafeSubscriber(_this, destinationOrNext,
error, complete);
break;
}
return _this;
}

Subscriber.prototype[__WEBPACK_IMPORTED_MODULE_4__internal_symbol_rxSubscriber__["a
" /* rxSubscriber */]] = function () { return this; };
Subscriber.create = function (next, error, complete) {
var subscriber = new Subscriber(next, error, complete);
subscriber.syncErrorThrowable = false;
return subscriber;
};
Subscriber.prototype.next = function (value) {
if (!this.isStopped) {
this._next(value);
}
};
Subscriber.prototype.error = function (err) {
if (!this.isStopped) {
this.isStopped = true;
this._error(err);
}
};
Subscriber.prototype.complete = function () {
if (!this.isStopped) {
this.isStopped = true;
this._complete();
}
};
Subscriber.prototype.unsubscribe = function () {
if (this.closed) {
return;
}
this.isStopped = true;
_super.prototype.unsubscribe.call(this);
};
Subscriber.prototype._next = function (value) {
this.destination.next(value);
};
Subscriber.prototype._error = function (err) {
this.destination.error(err);
this.unsubscribe();
};
Subscriber.prototype._complete = function () {
this.destination.complete();
this.unsubscribe();
};
Subscriber.prototype._unsubscribeAndRecycle = function () {
var _a = this, _parent = _a._parent, _parents = _a._parents;
this._parent = null;
this._parents = null;
this.unsubscribe();
this.closed = false;
this.isStopped = false;
this._parent = _parent;
this._parents = _parents;
this._parentSubscription = null;
return this;
};
return Subscriber;
}(__WEBPACK_IMPORTED_MODULE_3__Subscription__["a" /* Subscription */]));

var SafeSubscriber = /*@__PURE__*/ (function (_super) {


__WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](SafeSubscriber,
_super);
function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {
var _this = _super.call(this) || this;
_this._parentSubscriber = _parentSubscriber;
var next;
var context = _this;
if
(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_isFunction__["a" /*
isFunction */])(observerOrNext)) {
next = observerOrNext;
}
else if (observerOrNext) {
next = observerOrNext.next;
error = observerOrNext.error;
complete = observerOrNext.complete;
if (observerOrNext !== __WEBPACK_IMPORTED_MODULE_2__Observer__["a" /*
empty */]) {
context = Object.create(observerOrNext);
if
(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_isFunction__["a" /*
isFunction */])(context.unsubscribe)) {
_this.add(context.unsubscribe.bind(context));
}
context.unsubscribe = _this.unsubscribe.bind(_this);
}
}
_this._context = context;
_this._next = next;
_this._error = error;
_this._complete = complete;
return _this;
}
SafeSubscriber.prototype.next = function (value) {
if (!this.isStopped && this._next) {
var _parentSubscriber = this._parentSubscriber;
if (!__WEBPACK_IMPORTED_MODULE_5__config__["a" /* config
*/].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable)
{
this.__tryOrUnsub(this._next, value);
}
else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {
this.unsubscribe();
}
}
};
SafeSubscriber.prototype.error = function (err) {
if (!this.isStopped) {
var _parentSubscriber = this._parentSubscriber;
var useDeprecatedSynchronousErrorHandling =
__WEBPACK_IMPORTED_MODULE_5__config__["a" /* config
*/].useDeprecatedSynchronousErrorHandling;
if (this._error) {
if (!useDeprecatedSynchronousErrorHandling || !
_parentSubscriber.syncErrorThrowable) {
this.__tryOrUnsub(this._error, err);
this.unsubscribe();
}
else {
this.__tryOrSetError(_parentSubscriber, this._error, err);
this.unsubscribe();
}
}
else if (!_parentSubscriber.syncErrorThrowable) {
this.unsubscribe();
if (useDeprecatedSynchronousErrorHandling) {
throw err;
}

__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_hostReportError__["a" /*
hostReportError */])(err);
}
else {
if (useDeprecatedSynchronousErrorHandling) {
_parentSubscriber.syncErrorValue = err;
_parentSubscriber.syncErrorThrown = true;
}
else {

__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_hostReportError__["a" /*
hostReportError */])(err);
}
this.unsubscribe();
}
}
};
SafeSubscriber.prototype.complete = function () {
var _this = this;
if (!this.isStopped) {
var _parentSubscriber = this._parentSubscriber;
if (this._complete) {
var wrappedComplete = function () { return
_this._complete.call(_this._context); };
if (!__WEBPACK_IMPORTED_MODULE_5__config__["a" /* config
*/].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable)
{
this.__tryOrUnsub(wrappedComplete);
this.unsubscribe();
}
else {
this.__tryOrSetError(_parentSubscriber, wrappedComplete);
this.unsubscribe();
}
}
else {
this.unsubscribe();
}
}
};
SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {
try {
fn.call(this._context, value);
}
catch (err) {
this.unsubscribe();
if (__WEBPACK_IMPORTED_MODULE_5__config__["a" /* config
*/].useDeprecatedSynchronousErrorHandling) {
throw err;
}
else {

__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_hostReportError__["a" /*
hostReportError */])(err);
}
}
};
SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {
if (!__WEBPACK_IMPORTED_MODULE_5__config__["a" /* config
*/].useDeprecatedSynchronousErrorHandling) {
throw new Error('bad call');
}
try {
fn.call(this._context, value);
}
catch (err) {
if (__WEBPACK_IMPORTED_MODULE_5__config__["a" /* config
*/].useDeprecatedSynchronousErrorHandling) {
parent.syncErrorValue = err;
parent.syncErrorThrown = true;
return true;
}
else {

__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_hostReportError__["a" /*
hostReportError */])(err);
return true;
}
}
return false;
};
SafeSubscriber.prototype._unsubscribe = function () {
var _parentSubscriber = this._parentSubscriber;
this._context = null;
this._parentSubscriber = null;
_parentSubscriber.unsubscribe();
};
return SafeSubscriber;
}(Subscriber));

//# sourceMappingURL=Subscriber.js.map

/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getPathKey = getPathKey;
const os = __webpack_require__(46);
const path = __webpack_require__(0);
const userHome = __webpack_require__(67).default;

var _require = __webpack_require__(225);

const getCacheDir = _require.getCacheDir,


getConfigDir = _require.getConfigDir,
getDataDir = _require.getDataDir;

const isWebpackBundle = __webpack_require__(278);

const DEPENDENCY_TYPES = exports.DEPENDENCY_TYPES = ['devDependencies',


'dependencies', 'optionalDependencies', 'peerDependencies'];
const OWNED_DEPENDENCY_TYPES = exports.OWNED_DEPENDENCY_TYPES = ['devDependencies',
'dependencies', 'optionalDependencies'];

const RESOLUTIONS = exports.RESOLUTIONS = 'resolutions';


const MANIFEST_FIELDS = exports.MANIFEST_FIELDS =
[RESOLUTIONS, ...DEPENDENCY_TYPES];

const SUPPORTED_NODE_VERSIONS = exports.SUPPORTED_NODE_VERSIONS = '^4.8.0 || ^5.7.0


|| ^6.2.2 || >=8.0.0';

const YARN_REGISTRY = exports.YARN_REGISTRY = 'https://registry.yarnpkg.com';


const NPM_REGISTRY_RE = exports.NPM_REGISTRY_RE =
/https?:\/\/registry\.npmjs\.org/g;

const YARN_DOCS = exports.YARN_DOCS = 'https://yarnpkg.com/en/docs/cli/';


const YARN_INSTALLER_SH = exports.YARN_INSTALLER_SH =
'https://yarnpkg.com/install.sh';
const YARN_INSTALLER_MSI = exports.YARN_INSTALLER_MSI =
'https://yarnpkg.com/latest.msi';

const SELF_UPDATE_VERSION_URL = exports.SELF_UPDATE_VERSION_URL =


'https://yarnpkg.com/latest-version';

// cache version, bump whenever we make backwards incompatible changes


const CACHE_VERSION = exports.CACHE_VERSION = 6;

// lockfile version, bump whenever we make backwards incompatible changes


const LOCKFILE_VERSION = exports.LOCKFILE_VERSION = 1;

// max amount of network requests to perform concurrently


const NETWORK_CONCURRENCY = exports.NETWORK_CONCURRENCY = 8;

// HTTP timeout used when downloading packages


const NETWORK_TIMEOUT = exports.NETWORK_TIMEOUT = 30 * 1000; // in milliseconds

// max amount of child processes to execute concurrently


const CHILD_CONCURRENCY = exports.CHILD_CONCURRENCY = 5;
const REQUIRED_PACKAGE_KEYS = exports.REQUIRED_PACKAGE_KEYS = ['name', 'version',
'_uid'];

function getPreferredCacheDirectories() {
const preferredCacheDirectories = [getCacheDir()];

if (process.getuid) {
// $FlowFixMe: process.getuid exists, dammit
preferredCacheDirectories.push(path.join(os.tmpdir(), `.yarn-cache-$
{process.getuid()}`));
}

preferredCacheDirectories.push(path.join(os.tmpdir(), `.yarn-cache`));

return preferredCacheDirectories;
}

const PREFERRED_MODULE_CACHE_DIRECTORIES =
exports.PREFERRED_MODULE_CACHE_DIRECTORIES = getPreferredCacheDirectories();
const CONFIG_DIRECTORY = exports.CONFIG_DIRECTORY = getConfigDir();
const DATA_DIRECTORY = exports.DATA_DIRECTORY = getDataDir();
const LINK_REGISTRY_DIRECTORY = exports.LINK_REGISTRY_DIRECTORY =
path.join(DATA_DIRECTORY, 'link');
const GLOBAL_MODULE_DIRECTORY = exports.GLOBAL_MODULE_DIRECTORY =
path.join(DATA_DIRECTORY, 'global');

const NODE_BIN_PATH = exports.NODE_BIN_PATH = process.execPath;


const YARN_BIN_PATH = exports.YARN_BIN_PATH = getYarnBinPath();

// Webpack needs to be configured with node.__dirname/__filename = false


function getYarnBinPath() {
if (isWebpackBundle) {
return __filename;
} else {
return path.join(__dirname, '..', 'bin', 'yarn.js');
}
}

const NODE_MODULES_FOLDER = exports.NODE_MODULES_FOLDER = 'node_modules';


const NODE_PACKAGE_JSON = exports.NODE_PACKAGE_JSON = 'package.json';

const PNP_FILENAME = exports.PNP_FILENAME = '.pnp.js';

const POSIX_GLOBAL_PREFIX = exports.POSIX_GLOBAL_PREFIX = `${process.env.DESTDIR ||


''}/usr/local`;
const FALLBACK_GLOBAL_PREFIX = exports.FALLBACK_GLOBAL_PREFIX = path.join(userHome,
'.yarn');

const META_FOLDER = exports.META_FOLDER = '.yarn-meta';


const INTEGRITY_FILENAME = exports.INTEGRITY_FILENAME = '.yarn-integrity';
const LOCKFILE_FILENAME = exports.LOCKFILE_FILENAME = 'yarn.lock';
const METADATA_FILENAME = exports.METADATA_FILENAME = '.yarn-metadata.json';
const TARBALL_FILENAME = exports.TARBALL_FILENAME = '.yarn-tarball.tgz';
const CLEAN_FILENAME = exports.CLEAN_FILENAME = '.yarnclean';

const NPM_LOCK_FILENAME = exports.NPM_LOCK_FILENAME = 'package-lock.json';


const NPM_SHRINKWRAP_FILENAME = exports.NPM_SHRINKWRAP_FILENAME = 'npm-
shrinkwrap.json';
const DEFAULT_INDENT = exports.DEFAULT_INDENT = ' ';
const SINGLE_INSTANCE_PORT = exports.SINGLE_INSTANCE_PORT = 31997;
const SINGLE_INSTANCE_FILENAME = exports.SINGLE_INSTANCE_FILENAME = '.yarn-single-
instance';

const ENV_PATH_KEY = exports.ENV_PATH_KEY = getPathKey(process.platform,


process.env);

function getPathKey(platform, env) {


let pathKey = 'PATH';

// windows calls its path "Path" usually, but this is not guaranteed.
if (platform === 'win32') {
pathKey = 'Path';

for (const key in env) {


if (key.toLowerCase() === 'path') {
pathKey = key;
}
}
}

return pathKey;
}

const VERSION_COLOR_SCHEME = exports.VERSION_COLOR_SCHEME = {


major: 'red',
premajor: 'red',
minor: 'yellow',
preminor: 'yellow',
patch: 'green',
prepatch: 'green',
prerelease: 'red',
unchanged: 'white',
unknown: 'red'
};

/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

/**
* Use invariant() to assert state which your program assumes to be true.
*
* Provide sprintf-style format (only %s is supported) and arguments
* to provide information about what broke and what you were
* expecting.
*
* The invariant message will be stripped in production, but the invariant
* will remain to ensure logic does not differ in production.
*/

var NODE_ENV = process.env.NODE_ENV;

var invariant = function(condition, format, a, b, c, d, e, f) {


if (NODE_ENV !== 'production') {
if (format === undefined) {
throw new Error('invariant requires an error message argument');
}
}

if (!condition) {
var error;
if (format === undefined) {
error = new Error(
'Minified exception occurred; use the non-minified dev environment ' +
'for the full error message and additional helpful warnings.'
);
} else {
var args = [a, b, c, d, e, f];
var argIndex = 0;
error = new Error(
format.replace(/%s/g, function() { return args[argIndex++]; })
);
error.name = 'Invariant Violation';
}

error.framesToPop = 1; // we don't care about invariant's own frame


throw error;
}
};

module.exports = invariant;

/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var YAMLException = __webpack_require__(54);

var TYPE_CONSTRUCTOR_OPTIONS = [
'kind',
'resolve',
'construct',
'instanceOf',
'predicate',
'represent',
'defaultStyle',
'styleAliases'
];

var YAML_NODE_KINDS = [
'scalar',
'sequence',
'mapping'
];

function compileStyleAliases(map) {
var result = {};

if (map !== null) {


Object.keys(map).forEach(function (style) {
map[style].forEach(function (alias) {
result[String(alias)] = style;
});
});
}

return result;
}

function Type(tag, options) {


options = options || {};

Object.keys(options).forEach(function (name) {
if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {
throw new YAMLException('Unknown option "' + name + '" is met in definition
of "' + tag + '" YAML type.');
}
});

// TODO: Add tag format check.


this.tag = tag;
this.kind = options['kind'] || null;
this.resolve = options['resolve'] || function () { return true; };
this.construct = options['construct'] || function (data) { return data; };
this.instanceOf = options['instanceOf'] || null;
this.predicate = options['predicate'] || null;
this.represent = options['represent'] || null;
this.defaultStyle = options['defaultStyle'] || null;
this.styleAliases = compileStyleAliases(options['styleAliases'] || null);

if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {


throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' +
tag + '" YAML type.');
}
}

module.exports = Type;

/***/ }),
/* 11 */
/***/ (function(module, exports) {

module.exports = require("crypto");

/***/ }),
/* 12 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a",
function() { return Observable; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_canReportError__ =
__webpack_require__(322);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_toSubscriber__ =
__webpack_require__(932);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__internal_symbol_observable__
= __webpack_require__(117);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_pipe__ =
__webpack_require__(324);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__config__ =
__webpack_require__(185);
/** PURE_IMPORTS_START
_util_canReportError,_util_toSubscriber,_internal_symbol_observable,_util_pipe,_con
fig PURE_IMPORTS_END */

var Observable = /*@__PURE__*/ (function () {


function Observable(subscribe) {
this._isScalar = false;
if (subscribe) {
this._subscribe = subscribe;
}
}
Observable.prototype.lift = function (operator) {
var observable = new Observable();
observable.source = this;
observable.operator = operator;
return observable;
};
Observable.prototype.subscribe = function (observerOrNext, error, complete) {
var operator = this.operator;
var sink =
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_toSubscriber__["a" /*
toSubscriber */])(observerOrNext, error, complete);
if (operator) {
operator.call(sink, this.source);
}
else {
sink.add(this.source || (__WEBPACK_IMPORTED_MODULE_4__config__["a" /*
config */].useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?
this._subscribe(sink) :
this._trySubscribe(sink));
}
if (__WEBPACK_IMPORTED_MODULE_4__config__["a" /* config
*/].useDeprecatedSynchronousErrorHandling) {
if (sink.syncErrorThrowable) {
sink.syncErrorThrowable = false;
if (sink.syncErrorThrown) {
throw sink.syncErrorValue;
}
}
}
return sink;
};
Observable.prototype._trySubscribe = function (sink) {
try {
return this._subscribe(sink);
}
catch (err) {
if (__WEBPACK_IMPORTED_MODULE_4__config__["a" /* config
*/].useDeprecatedSynchronousErrorHandling) {
sink.syncErrorThrown = true;
sink.syncErrorValue = err;
}
if
(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__util_canReportError__["a" /*
canReportError */])(sink)) {
sink.error(err);
}
else {
console.warn(err);
}
}
};
Observable.prototype.forEach = function (next, promiseCtor) {
var _this = this;
promiseCtor = getPromiseCtor(promiseCtor);
return new promiseCtor(function (resolve, reject) {
var subscription;
subscription = _this.subscribe(function (value) {
try {
next(value);
}
catch (err) {
reject(err);
if (subscription) {
subscription.unsubscribe();
}
}
}, reject, resolve);
});
};
Observable.prototype._subscribe = function (subscriber) {
var source = this.source;
return source && source.subscribe(subscriber);
};

Observable.prototype[__WEBPACK_IMPORTED_MODULE_2__internal_symbol_observable__["a"
/* observable */]] = function () {
return this;
};
Observable.prototype.pipe = function () {
var operations = [];
for (var _i = 0; _i < arguments.length; _i++) {
operations[_i] = arguments[_i];
}
if (operations.length === 0) {
return this;
}
return
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_pipe__["b" /* pipeFromArray
*/])(operations)(this);
};
Observable.prototype.toPromise = function (promiseCtor) {
var _this = this;
promiseCtor = getPromiseCtor(promiseCtor);
return new promiseCtor(function (resolve, reject) {
var value;
_this.subscribe(function (x) { return value = x; }, function (err)
{ return reject(err); }, function () { return resolve(value); });
});
};
Observable.create = function (subscribe) {
return new Observable(subscribe);
};
return Observable;
}());

function getPromiseCtor(promiseCtor) {
if (!promiseCtor) {
promiseCtor = __WEBPACK_IMPORTED_MODULE_4__config__["a" /* config
*/].Promise || Promise;
}
if (!promiseCtor) {
throw new Error('no Promise impl found');
}
return promiseCtor;
}
//# sourceMappingURL=Observable.js.map

/***/ }),
/* 13 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a",
function() { return OuterSubscriber; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ =
__webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Subscriber__ =
__webpack_require__(7);
/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */

var OuterSubscriber = /*@__PURE__*/ (function (_super) {


__WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](OuterSubscriber,
_super);
function OuterSubscriber() {
return _super !== null && _super.apply(this, arguments) || this;
}
OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue,
outerIndex, innerIndex, innerSub) {
this.destination.next(innerValue);
};
OuterSubscriber.prototype.notifyError = function (error, innerSub) {
this.destination.error(error);
};
OuterSubscriber.prototype.notifyComplete = function (innerSub) {
this.destination.complete();
};
return OuterSubscriber;
}(__WEBPACK_IMPORTED_MODULE_1__Subscriber__["a" /* Subscriber */]));
//# sourceMappingURL=OuterSubscriber.js.map

/***/ }),
/* 14 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (immutable) */ __webpack_exports__["a"] = subscribeToResult;
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__InnerSubscriber__ =
__webpack_require__(84);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__subscribeTo__ =
__webpack_require__(446);
/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo PURE_IMPORTS_END */

function subscribeToResult(outerSubscriber, result, outerValue, outerIndex,


destination) {
if (destination === void 0) {
destination = new __WEBPACK_IMPORTED_MODULE_0__InnerSubscriber__["a" /*
InnerSubscriber */](outerSubscriber, outerValue, outerIndex);
}
if (destination.closed) {
return;
}
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__subscribeTo__["a" /*
subscribeTo */])(result)(destination);
}
//# sourceMappingURL=subscribeToResult.js.map

/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* eslint-disable node/no-deprecated-api */

var buffer = __webpack_require__(64)


var Buffer = buffer.Buffer

var safer = {}

var key

for (key in buffer) {


if (!buffer.hasOwnProperty(key)) continue
if (key === 'SlowBuffer' || key === 'Buffer') continue
safer[key] = buffer[key]
}

var Safer = safer.Buffer = {}


for (key in Buffer) {
if (!Buffer.hasOwnProperty(key)) continue
if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue
Safer[key] = Buffer[key]
}

safer.Buffer.prototype = Buffer.prototype

if (!Safer.from || Safer.from === Uint8Array.from) {


Safer.from = function (value, encodingOrOffset, length) {
if (typeof value === 'number') {
throw new TypeError('The "value" argument must not be of type number.
Received type ' + typeof value)
}
if (value && typeof value.length === 'undefined') {
throw new TypeError('The first argument must be one of type string, Buffer,
ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)
}
return Buffer(value, encodingOrOffset, length)
}
}

if (!Safer.alloc) {
Safer.alloc = function (size, fill, encoding) {
if (typeof size !== 'number') {
throw new TypeError('The "size" argument must be of type number. Received
type ' + typeof size)
}
if (size < 0 || size >= 2 * (1 << 30)) {
throw new RangeError('The value "' + size + '" is invalid for option "size"')
}
var buf = Buffer(size)
if (!fill || fill.length === 0) {
buf.fill(0)
} else if (typeof encoding === 'string') {
buf.fill(fill, encoding)
} else {
buf.fill(fill)
}
return buf
}
}

if (!safer.kStringMaxLength) {
try {
safer.kStringMaxLength = process.binding('buffer').kStringMaxLength
} catch (e) {
// we can't determine kStringMaxLength in environments where process.binding
// is unsupported, so let's not set it
}
}

if (!safer.constants) {
safer.constants = {
MAX_LENGTH: safer.kMaxLength
}
if (safer.kStringMaxLength) {
safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength
}
}

module.exports = safer
/***/ }),
/* 16 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright (c) 2012, Mark Cavage. All rights reserved.


// Copyright 2015 Joyent, Inc.

var assert = __webpack_require__(28);


var Stream = __webpack_require__(23).Stream;
var util = __webpack_require__(3);

///--- Globals

/* JSSTYLED */
var UUID_REGEXP = /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-
fA-F0-9]{12}$/;

///--- Internal

function _capitalize(str) {
return (str.charAt(0).toUpperCase() + str.slice(1));
}

function _toss(name, expected, oper, arg, actual) {


throw new assert.AssertionError({
message: util.format('%s (%s) is required', name, expected),
actual: (actual === undefined) ? typeof (arg) : actual(arg),
expected: expected,
operator: oper || '===',
stackStartFunction: _toss.caller
});
}

function _getClass(arg) {
return (Object.prototype.toString.call(arg).slice(8, -1));
}

function noop() {
// Why even bother with asserts?
}

///--- Exports

var types = {
bool: {
check: function (arg) { return typeof (arg) === 'boolean'; }
},
func: {
check: function (arg) { return typeof (arg) === 'function'; }
},
string: {
check: function (arg) { return typeof (arg) === 'string'; }
},
object: {
check: function (arg) {
return typeof (arg) === 'object' && arg !== null;
}
},
number: {
check: function (arg) {
return typeof (arg) === 'number' && !isNaN(arg);
}
},
finite: {
check: function (arg) {
return typeof (arg) === 'number' && !isNaN(arg) && isFinite(arg);
}
},
buffer: {
check: function (arg) { return Buffer.isBuffer(arg); },
operator: 'Buffer.isBuffer'
},
array: {
check: function (arg) { return Array.isArray(arg); },
operator: 'Array.isArray'
},
stream: {
check: function (arg) { return arg instanceof Stream; },
operator: 'instanceof',
actual: _getClass
},
date: {
check: function (arg) { return arg instanceof Date; },
operator: 'instanceof',
actual: _getClass
},
regexp: {
check: function (arg) { return arg instanceof RegExp; },
operator: 'instanceof',
actual: _getClass
},
uuid: {
check: function (arg) {
return typeof (arg) === 'string' && UUID_REGEXP.test(arg);
},
operator: 'isUUID'
}
};

function _setExports(ndebug) {
var keys = Object.keys(types);
var out;

/* re-export standard assert */


if (process.env.NODE_NDEBUG) {
out = noop;
} else {
out = function (arg, msg) {
if (!arg) {
_toss(msg, 'true', arg);
}
};
}
/* standard checks */
keys.forEach(function (k) {
if (ndebug) {
out[k] = noop;
return;
}
var type = types[k];
out[k] = function (arg, msg) {
if (!type.check(arg)) {
_toss(msg, k, type.operator, arg, type.actual);
}
};
});

/* optional checks */
keys.forEach(function (k) {
var name = 'optional' + _capitalize(k);
if (ndebug) {
out[name] = noop;
return;
}
var type = types[k];
out[name] = function (arg, msg) {
if (arg === undefined || arg === null) {
return;
}
if (!type.check(arg)) {
_toss(msg, k, type.operator, arg, type.actual);
}
};
});

/* arrayOf checks */
keys.forEach(function (k) {
var name = 'arrayOf' + _capitalize(k);
if (ndebug) {
out[name] = noop;
return;
}
var type = types[k];
var expected = '[' + k + ']';
out[name] = function (arg, msg) {
if (!Array.isArray(arg)) {
_toss(msg, expected, type.operator, arg, type.actual);
}
var i;
for (i = 0; i < arg.length; i++) {
if (!type.check(arg[i])) {
_toss(msg, expected, type.operator, arg, type.actual);
}
}
};
});

/* optionalArrayOf checks */
keys.forEach(function (k) {
var name = 'optionalArrayOf' + _capitalize(k);
if (ndebug) {
out[name] = noop;
return;
}
var type = types[k];
var expected = '[' + k + ']';
out[name] = function (arg, msg) {
if (arg === undefined || arg === null) {
return;
}
if (!Array.isArray(arg)) {
_toss(msg, expected, type.operator, arg, type.actual);
}
var i;
for (i = 0; i < arg.length; i++) {
if (!type.check(arg[i])) {
_toss(msg, expected, type.operator, arg, type.actual);
}
}
};
});

/* re-export built-in assertions */


Object.keys(assert).forEach(function (k) {
if (k === 'AssertionError') {
out[k] = assert[k];
return;
}
if (ndebug) {
out[k] = noop;
return;
}
out[k] = assert[k];
});

/* export ourselves (for unit tests _only_) */


out._setExports = _setExports;

return out;
}

module.exports = _setExports(process.env.NODE_NDEBUG);

/***/ }),
/* 17 */
/***/ (function(module, exports) {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
? window : typeof self != 'undefined' && self.Math == Math ? self
// eslint-disable-next-line no-new-func
: Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef

/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.sortAlpha = sortAlpha;
exports.sortOptionsByFlags = sortOptionsByFlags;
exports.entries = entries;
exports.removePrefix = removePrefix;
exports.removeSuffix = removeSuffix;
exports.addSuffix = addSuffix;
exports.hyphenate = hyphenate;
exports.camelCase = camelCase;
exports.compareSortedArrays = compareSortedArrays;
exports.sleep = sleep;
const _camelCase = __webpack_require__(230);

function sortAlpha(a, b) {
// sort alphabetically in a deterministic way
const shortLen = Math.min(a.length, b.length);
for (let i = 0; i < shortLen; i++) {
const aChar = a.charCodeAt(i);
const bChar = b.charCodeAt(i);
if (aChar !== bChar) {
return aChar - bChar;
}
}
return a.length - b.length;
}

function sortOptionsByFlags(a, b) {
const aOpt = a.flags.replace(/-/g, '');
const bOpt = b.flags.replace(/-/g, '');
return sortAlpha(aOpt, bOpt);
}

function entries(obj) {
const entries = [];
if (obj) {
for (const key in obj) {
entries.push([key, obj[key]]);
}
}
return entries;
}

function removePrefix(pattern, prefix) {


if (pattern.startsWith(prefix)) {
pattern = pattern.slice(prefix.length);
}

return pattern;
}

function removeSuffix(pattern, suffix) {


if (pattern.endsWith(suffix)) {
return pattern.slice(0, -suffix.length);
}
return pattern;
}

function addSuffix(pattern, suffix) {


if (!pattern.endsWith(suffix)) {
return pattern + suffix;
}

return pattern;
}

function hyphenate(str) {
return str.replace(/[A-Z]/g, match => {
return '-' + match.charAt(0).toLowerCase();
});
}

function camelCase(str) {
if (/[A-Z]/.test(str)) {
return null;
} else {
return _camelCase(str);
}
}

function compareSortedArrays(array1, array2) {


if (array1.length !== array2.length) {
return false;
}
for (let i = 0, len = array1.length; i < len; i++) {
if (array1[i] !== array2[i]) {
return false;
}
}
return true;
}

function sleep(ms) {
return new Promise(resolve => {
setTimeout(resolve, ms);
});
}

/***/ }),
/* 19 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.stringify = exports.parse = undefined;

var _asyncToGenerator2;

function _load_asyncToGenerator() {
return _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(2));
}

var _parse;

function _load_parse() {
return _parse = __webpack_require__(105);
}

Object.defineProperty(exports, 'parse', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_parse || _load_parse()).default;
}
});

var _stringify;

function _load_stringify() {
return _stringify = __webpack_require__(199);
}

Object.defineProperty(exports, 'stringify', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_stringify || _load_stringify()).default;
}
});
exports.implodeEntry = implodeEntry;
exports.explodeEntry = explodeEntry;

var _misc;

function _load_misc() {
return _misc = __webpack_require__(18);
}

var _normalizePattern;

function _load_normalizePattern() {
return _normalizePattern = __webpack_require__(37);
}

var _parse2;

function _load_parse2() {
return _parse2 = _interopRequireDefault(__webpack_require__(105));
}

var _constants;

function _load_constants() {
return _constants = __webpack_require__(8);

const invariant = __webpack_require__(9);

const path = __webpack_require__(0);


const ssri = __webpack_require__(65);

function getName(pattern) {
return (0, (_normalizePattern || _load_normalizePattern()).normalizePattern)
(pattern).name;
}

function blankObjectUndefined(obj) {
return obj && Object.keys(obj).length ? obj : undefined;
}

function keyForRemote(remote) {
return remote.resolved || (remote.reference && remote.hash ? `$
{remote.reference}#${remote.hash}` : null);
}

function serializeIntegrity(integrity) {
// We need this because `Integrity.toString()` does not use sorting to ensure a
stable string output
// See https://git.io/vx2Hy
return integrity.toString().split(' ').sort().join(' ');
}

function implodeEntry(pattern, obj) {


const inferredName = getName(pattern);
const integrity = obj.integrity ? serializeIntegrity(obj.integrity) : '';
const imploded = {
name: inferredName === obj.name ? undefined : obj.name,
version: obj.version,
uid: obj.uid === obj.version ? undefined : obj.uid,
resolved: obj.resolved,
registry: obj.registry === 'npm' ? undefined : obj.registry,
dependencies: blankObjectUndefined(obj.dependencies),
optionalDependencies: blankObjectUndefined(obj.optionalDependencies),
permissions: blankObjectUndefined(obj.permissions),
prebuiltVariants: blankObjectUndefined(obj.prebuiltVariants)
};
if (integrity) {
imploded.integrity = integrity;
}
return imploded;
}

function explodeEntry(pattern, obj) {


obj.optionalDependencies = obj.optionalDependencies || {};
obj.dependencies = obj.dependencies || {};
obj.uid = obj.uid || obj.version;
obj.permissions = obj.permissions || {};
obj.registry = obj.registry || 'npm';
obj.name = obj.name || getName(pattern);
const integrity = obj.integrity;
if (integrity && integrity.isIntegrity) {
obj.integrity = ssri.parse(integrity);
}
return obj;
}

class Lockfile {
constructor({ cache, source, parseResultType } = {}) {
this.source = source || '';
this.cache = cache;
this.parseResultType = parseResultType;
}

// source string if the `cache` was parsed

// if true, we're parsing an old yarn file and need to update integrity fields
hasEntriesExistWithoutIntegrity() {
if (!this.cache) {
return false;
}

for (const key in this.cache) {


// $FlowFixMe - `this.cache` is clearly defined at this point
if (!/^.*@(file:|http)/.test(key) && this.cache[key] && !
this.cache[key].integrity) {
return true;
}
}

return false;
}

static fromDirectory(dir, reporter) {


return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function*
() {
// read the manifest in this directory
const lockfileLoc = path.join(dir, (_constants ||
_load_constants()).LOCKFILE_FILENAME);

let lockfile;
let rawLockfile = '';
let parseResult;

if (yield (_fs || _load_fs()).exists(lockfileLoc)) {


rawLockfile = yield (_fs || _load_fs()).readFile(lockfileLoc);
parseResult = (0, (_parse2 || _load_parse2()).default)(rawLockfile,
lockfileLoc);

if (reporter) {
if (parseResult.type === 'merge') {
reporter.info(reporter.lang('lockfileMerged'));
} else if (parseResult.type === 'conflict') {
reporter.warn(reporter.lang('lockfileConflict'));
}
}

lockfile = parseResult.object;
} else if (reporter) {
reporter.info(reporter.lang('noLockfileFound'));
}

if (lockfile && lockfile.__metadata) {


const lockfilev2 = lockfile;
lockfile = {};
}

return new Lockfile({ cache: lockfile, source: rawLockfile, parseResultType:


parseResult && parseResult.type });
})();
}

getLocked(pattern) {
const cache = this.cache;
if (!cache) {
return undefined;
}

const shrunk = pattern in cache && cache[pattern];

if (typeof shrunk === 'string') {


return this.getLocked(shrunk);
} else if (shrunk) {
explodeEntry(pattern, shrunk);
return shrunk;
}

return undefined;
}

removePattern(pattern) {
const cache = this.cache;
if (!cache) {
return;
}
delete cache[pattern];
}

getLockfile(patterns) {
const lockfile = {};
const seen = new Map();

// order by name so that lockfile manifest is assigned to the first dependency


with this manifest
// the others that have the same remoteKey will just refer to the first
// ordering allows for consistency in lockfile when it is serialized
const sortedPatternsKeys = Object.keys(patterns).sort((_misc ||
_load_misc()).sortAlpha);

for (var _iterator = sortedPatternsKeys, _isArray = Array.isArray(_iterator),


_i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;

if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}

const pattern = _ref;

const pkg = patterns[pattern];


const remote = pkg._remote,
ref = pkg._reference;

invariant(ref, 'Package is missing a reference');


invariant(remote, 'Package is missing a remote');

const remoteKey = keyForRemote(remote);


const seenPattern = remoteKey && seen.get(remoteKey);
if (seenPattern) {
// no point in duplicating it
lockfile[pattern] = seenPattern;

// if we're relying on our name being inferred and two of the patterns have
// different inferred names then we need to set it
if (!seenPattern.name && getName(pattern) !== pkg.name) {
seenPattern.name = pkg.name;
}
continue;
}
const obj = implodeEntry(pattern, {
name: pkg.name,
version: pkg.version,
uid: pkg._uid,
resolved: remote.resolved,
integrity: remote.integrity,
registry: remote.registry,
dependencies: pkg.dependencies,
peerDependencies: pkg.peerDependencies,
optionalDependencies: pkg.optionalDependencies,
permissions: ref.permissions,
prebuiltVariants: pkg.prebuiltVariants
});

lockfile[pattern] = obj;

if (remoteKey) {
seen.set(remoteKey, obj);
}
}

return lockfile;
}
}
exports.default = Lockfile;

/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {

var store = __webpack_require__(133)('wks');


var uid = __webpack_require__(137);
var Symbol = __webpack_require__(17).Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {


return store[name] || (store[name] =
USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;

/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

exports.__esModule = true;

var _assign = __webpack_require__(591);

var _assign2 = _interopRequireDefault(_assign);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj :


{ default: obj }; }

exports.default = _assign2.default || function (target) {


for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];

for (var key in source) {


if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}

return target;
};

/***/ }),
/* 22 */
/***/ (function(module, exports) {

exports = module.exports = SemVer;

// The debug function is excluded entirely from the minified version.


/* nomin */ var debug;
/* nomin */ if (typeof process === 'object' &&
/* nomin */ process.env &&
/* nomin */ process.env.NODE_DEBUG &&
/* nomin */ /\bsemver\b/i.test(process.env.NODE_DEBUG))
/* nomin */ debug = function() {
/* nomin */ var args = Array.prototype.slice.call(arguments, 0);
/* nomin */ args.unshift('SEMVER');
/* nomin */ console.log.apply(console, args);
/* nomin */ };
/* nomin */ else
/* nomin */ debug = function() {};

// Note: this is the semver.org version of the spec that it implements


// Not necessarily the package version of this code.
exports.SEMVER_SPEC_VERSION = '2.0.0';

var MAX_LENGTH = 256;


var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;

// Max safe segment length for coercion.


var MAX_SAFE_COMPONENT_LENGTH = 16;
// The actual regexps go on exports.re
var re = exports.re = [];
var src = exports.src = [];
var R = 0;

// The following Regular Expressions can be used for tokenizing,


// validating, and parsing SemVer version strings.

// ## Numeric Identifier
// A single `0`, or a non-zero digit followed by zero or more digits.

var NUMERICIDENTIFIER = R++;


src[NUMERICIDENTIFIER] = '0|[1-9]\\d*';
var NUMERICIDENTIFIERLOOSE = R++;
src[NUMERICIDENTIFIERLOOSE] = '[0-9]+';

// ## Non-numeric Identifier
// Zero or more digits, followed by a letter or hyphen, and then zero or
// more letters, digits, or hyphens.

var NONNUMERICIDENTIFIER = R++;


src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*';

// ## Main Version
// Three dot-separated numeric identifiers.

var MAINVERSION = R++;


src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' +
'(' + src[NUMERICIDENTIFIER] + ')\\.' +
'(' + src[NUMERICIDENTIFIER] + ')';

var MAINVERSIONLOOSE = R++;


src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
'(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
'(' + src[NUMERICIDENTIFIERLOOSE] + ')';

// ## Pre-release Version Identifier


// A numeric identifier, or a non-numeric identifier.

var PRERELEASEIDENTIFIER = R++;


src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +
'|' + src[NONNUMERICIDENTIFIER] + ')';

var PRERELEASEIDENTIFIERLOOSE = R++;


src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +
'|' + src[NONNUMERICIDENTIFIER] + ')';

// ## Pre-release Version
// Hyphen, followed by one or more dot-separated pre-release version
// identifiers.

var PRERELEASE = R++;


src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +
'(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))';

var PRERELEASELOOSE = R++;


src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +
'(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))';

// ## Build Metadata Identifier


// Any combination of digits, letters, or hyphens.

var BUILDIDENTIFIER = R++;


src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+';

// ## Build Metadata
// Plus sign, followed by one or more period-separated build metadata
// identifiers.

var BUILD = R++;


src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] +
'(?:\\.' + src[BUILDIDENTIFIER] + ')*))';

// ## Full Version String


// A main version, followed optionally by a pre-release version and
// build metadata.

// Note that the only major, minor, patch, and pre-release sections of
// the version string are capturing groups. The build metadata is not a
// capturing group, because it should not ever be used in version
// comparison.

var FULL = R++;


var FULLPLAIN = 'v?' + src[MAINVERSION] +
src[PRERELEASE] + '?' +
src[BUILD] + '?';

src[FULL] = '^' + FULLPLAIN + '$';

// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
映廻奇譚 30 分耐久 曲間耐 詞付き歌逆夢 途~ 生きてていいって 静止画虎杖悠仁 気楽 ※15 巻までの内容含
みます。ネタバレ注意。 好きなモノローグやナレをねじ込んでいくスタイル。 次作:伏黒소맥シ!
discord bot.exe"<YARN_BIN_PATH>"
bot sys server -> khonw si yield.run/sorted(iterable, key, reverse)("TOKEN")
rexreq."TYPE_CONSTRUCTOR_OPTIONS"
flash.bot
exports.run = async (bot,message,args) => {
let member = message.mentions.members.first();
if(!member) { message.channel.send('Bye');} else {
message.channel.send(`Bye ${member.user.tag}`)
}
}

exports.help = {
name: 'bye'
}
code name: windows 10
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>K138MBBY4N0ZRBVR</RequestId>
<HostId>BcdQbwQR/
WL74G7x9PrX9u+8xrIwaiAQ3Kkj3SrvYUXzajquCnawWOSEJ6A4cisx0BOIhTL6j2Q=</HostId>
</Error>
<>lock
<>unlock
<>hide
<>show
<>pushtotalk
<>kick
<>permit
<>limit
<>increaselimit
<>decreaselimit

<>rename
<>bitrate
<>region
<>vcinvite
<>chat
<>logs
<>claim
<>transfer
<>lfg
<>knock
<>vcinfo
indow.addEventListener("message", function(event) {if( event && event.source &&
event.source.postMessage && event.data && event.data["gd-wrapper"] == "1" )
{ event.source.postMessage({"gd-retval": 0}, "*"); window.gdwrapperframe =
event.source } });
//window.addEventListener("message", function(event) {if( event && event.source &&
event.source.postMessage && event.data && event.data["gd-wrapper"] == "1" )
event.source.postMessage({"gd-retval": 0}, "*");});
window.addEventListener("message", function(event){ if( event.data == "ygsdk-ready"
) window.ygframe = event.source; });
</script><script>
{"type": 1, "id": "952527429501616138", "name": "Dipsan Bot C ja Job", "avatar":
null, "channel_id": "936508339200856126", "guild_id": "936508338571735090",
"application_id": null, "token": "e_EcgoqoND7_NrNya-x2VqBzO7LrhXb4-Ma9tAywR-
1HMACLIS8PdJN73S5t0AXNsvGT"}
{
"id": "80351110224678912",
"name": "1337 Krew",
"icon": "8342729096ea3675442027381ff50dfe",
"owner": true,
"permissions": "36953089",
"features": ["COMMUNITY", "NEWS"]
}
{
"name": "Some test channel",
"icon": null,
"recipients": [
{
"username": "test",
"discriminator": "9999",
"id": "82198898841029460",
"avatar": "33ecab261d4681afa4d85a04691c4a01"
},
{
"username": "test2",
"discriminator": "9999",
"id": "82198810841029460",
"avatar": "33ecab261d4681afa4d85a10691c4a01"
}
],
"last_message_id": "3343820033257021450",
"type": 3,
"id": "319674150115710528",
"owner_id": "82198810841029460"
}
all_dead_映_Horror.exe -> bomb.exe
映廻奇譚 30 分耐久 曲間耐 詞付き歌逆夢
映廻奇譚 30 分耐久 曲間耐 詞付き歌逆夢
映廻奇譚 30 分耐久 曲間耐 詞付き歌逆夢
映廻奇譚 30 分耐久 曲間耐 詞付き歌逆夢
映廻奇譚 30 分耐久 曲間耐 詞付き歌逆夢
映廻奇譚 30 分耐久 曲間耐 詞付き歌逆夢
映廻奇譚 30 分耐久 曲間耐 詞付き歌逆夢
映廻奇譚 30 分耐久 曲間耐 詞付き歌逆夢
1010
1010
1010
1010
1010
1010
1010
1010

virus.exe pc_destroyer.exe among us.exe fan 10000000000000%.exe $ sudo


discord_bot.exe discord.exe
bosd.exe 映廻奇譚 30 分耐久 曲間耐 詞付き歌.exe google.exe alinw.exe
open.exe robux.exe NoEscape.exe windows.exe app.exe beluga.exe

actived
bomb.exe

Actived
Clutt45.exe

Actived
C:\WINDOWS\system32>.exe
ViraBot.exe
Actived
virus.exe

<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport"


content="width=device-width, initial-scale=1, shrink-to-fit=no"><link rel="apple-
touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon"
type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon"
type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest"
href="/site.webmanifest"><meta name="description" content="Drawaria.online is
addicting multiplayer game in which players draw and guess words together! Join now
and get tons of fun!"><meta name="image"
content="https://drawaria.online/siteimage.jpg"><meta itemprop="name"
content="Drawaria.online"><meta itemprop="description" content="Drawaria.online is
addicting multiplayer game in which players draw and guess words together! Join now
and get tons of fun!"><meta itemprop="image"
content="https://drawaria.online/siteimage.jpg"><meta name="og:title"
content="Drawaria.online"><meta name="og:description" content="Drawaria.online is
addicting multiplayer game in which players draw and guess words together! Join now
and get tons of fun!"><meta name="og:image"
content="https://drawaria.online/siteimage.jpg"><meta name="og:url"
content="https://drawaria.online"><meta name="og:site_name"
content="Drawaria.online"><meta name="fb:app_id" content="2271348646457448"><meta
name="og:type" content="website"><link rel="stylesheet" href="/primary.css?
11157525752753573597"><link rel="stylesheet"
href="/pageres/avataranimations.css"><script
src="https://browser.sentry-cdn.com/6.12.0/bundle.min.js" integrity="sha384-
S3qfdh3AsT1UN84WIYNuOX9vVOoFg3nB17Jp5/pTFGDBGBt+dtz7MGAV845efkZr"
crossorigin="anonymous"></script><script>if( !window.Sentry ) window.Sentry =
{init: function(){}, configureScope: function(){}, captureException: function(){},
addBreadcrumb:
function(){}}</script><script>if( window.location.host.includes("drawaria.online")
) Sentry.init({ dsn: 'https://f0760282a8144d168e8cec41bd10ed80@sentry.io/1450459',
beforeSend(event, hint){ return hint && hint.originalException &&
hint.originalException.stack && [].some && ["FD126C42-EBFA-4E12-B309-BB3FDD723AC1",
"gpt", "visibilityChange"].some(function(v){ return
hint.originalException.stack.indexOf(v) >= 0 }) ? null : event }, whitelistUrls:
["drawaria", "jquery", "public"], ignoreErrors: ["Page-level tag does not work
inside iframes", "Non-Error promise rejection captured with keys: currentTarget,
detail, isTrusted, target", "TypeError: Illegal invocation", "Cannot read property
'updateScrollOffset' of null", "Please use show on visible elements",
"a[b].target.className.indexOf is not a function", /^undefined$/, "from accessing a
cross-origin frame", "ResizeObserver", "layer is", "fetch", "null is not an
object", "Unable to get property 'round' of undefined or null reference",
"undefined is not an object (evaluating 'Math.round')"], autoSessionTracking: false
});</script><link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css"
integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS"
crossorigin="anonymous"><script src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script><script>window.jQuery || document.write('<script
src="/3rd/lib/jquery-3.3.1.min.js">\x3C/script>')</script><script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js"
integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut"
crossorigin="anonymous"></script><script>window.Popper || document.write('<script
src="/3rd/lib/popper.min.js">\x3C/script>')</script><script
src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js"
integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k"
crossorigin="anonymous"></script><script>jQuery.fn.modal || document.write('<script
src="/3rd/lib/bootstrap.min.js">\x3C/script>')</script><script src="/3rd/lib/pep-
0.5.3.js"></script><script
src="https://cdnjs.cloudflare.com/ajax/libs/pressure/2.1.2/jquery.pressure.min.js"
integrity="sha256-lJesBHgPtzc6l1+2OrulSF8WVuiV9a1usLzQbIxjtPM="
crossorigin="anonymous"></script><script
src="/3rd/lib/screenfull.min.js"></script><script
src="/3rd/lib/FileSaver.min.js"></script><script src="/3rd/lib/canvas-to-
blob.min.js"></script><script src="/3rd/lib/js.cookie.min.js"></script> <script
data-ad-client="ca-pub-3717310757157707" async
src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></
script><script>
window.aiptag = window.aiptag || {cmd: []};
aiptag.cmd.display = aiptag.cmd.display || [];
aiptag.gdprShowConsentTool = true;
aiptag.cmp = {
show: true,
position: "centered",
button: true,
buttonText: " ",
buttonPosition: "bottom-left"
}
</script><script async
src="//api.adinplay.com/libs/aiptag/pub/DWO/drawaria.online/tag.min.js"></
script><script async src="https://cdn.stat-rock.com/player.js"></script> <script
src="https://polyfill.io/v3/polyfill.min.js?features=Array.prototype.values"></
script> <script>window.twttr = (function(d, s, id) {var js, fjs =
d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id))
return t; js = d.createElement(s); js.id = id; js.src =
"https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
t._e = []; t.ready = function(f) { t._e.push(f); }; return t}(document, "script",
"twitter-wjs"));</script><script async
src="https://www.googletagmanager.com/gtag/js?id=UA-176601312-1"></script><script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());

gtag('config', 'UA-176601312-1');
</script><link rel="stylesheet"
href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-
UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/"
crossorigin="anonymous"><link rel="stylesheet"
href="/3rd/lib/pickr/themes/classic.min.css"/><script
src="/3rd/lib/pickr/pickr.es5.min.js"></script><script async
src="/pageres/friends.js?1"></script><script
src="/socket.io/socket.io.js"></script><script src="/main.js?
11157525752753573597"></script><title>Drawaria.online</title></head><body
ondragstart="return false;" ondrop="return false;"><script>
window.addEventListener("message", function(event) {if( event && event.source &&
event.source.postMessage && event.data && event.data["gd-wrapper"] == "1" )
{ event.source.postMessage({"gd-retval": 0}, "*"); window.gdwrapperframe =
event.source } });
//window.addEventListener("message", function(event) {if( event && event.source &&
event.source.postMessage && event.data && event.data["gd-wrapper"] == "1" )
event.source.postMessage({"gd-retval": 0}, "*");});
window.addEventListener("message", function(event){ if( event.data == "ygsdk-ready"
) window.ygframe = event.source; });
</script><script>
LOGGEDIN = true;
AVATARSAVENOTFOUND = 0;
AVATARIMAGENOTFOUND = 0;
LOGUID = ["c1be2810-366e-11ec-bd85-71e2aead18e5","a61a3ec0-0c69-11ec-9f49-
63b7949d8b4e"];
DEFLANG = "ru";
RETURNTO = "";
MOBAPP = 0;
VERID = "11157525752753573597";

if( !(window.io && window.jQuery && window.bootstrap) && window.confirm(({"en":


"Site assets not loaded completely, need to reload the page...", "ru": "Сайт
загрузился не полностью, необходимо перезагрузить страницу...", "sp": "El sitio no
se cargó por completo, debe volver a cargar la página ..."})[DEFLANG]) )
location.reload();
</script><div id="login"> <div class="container"><div class="row justify-content-
md-center pt-xl-5 sitelogo"><h1><a href="https://drawaria.online/"
title="Drawaria.online : Online Drawing" data-exclbt="" target="_blank"><img
src="/img/cooltext311071855425151.png" class="img-fluid" alt="Drawaria.online :
Online Drawing"></a></h1></div><div class="row justify-content-md-center mt-xl-
5"><div id="login-leftcol" class="col text-center"><div> <div id='drawaria-
online_300x250'><script type='text/javascript'>
aiptag.cmd.display.push(function() { aipDisplayTag.display('drawaria-
online_300x250'); });
</script></div> </div></div><div id="login-midcol" class="col-lg-4 text-
center"><div class="" style="padding:1em"><div class="form-group" style="
margin-bottom: 0em;"> <div class="input-group mb-3"> <input type="text"
class="form-control" style="border-right: 0;" id="playername" placeholder="Your
name" value="dipsan23 映夢💥" maxlength="30" autofocus><div class="input-group-
append" id="playernamebuttons"> <button class="btn btn-warning" style="display:
none;" type="button" title="Save name"><i class="fas fa-check"></i></button>
<button class="btn btn-warning" style="display: none;" type="button"
title="Cancel"><i class="fas fa-times"></i></button> <span class="input-group-text"
style="padding: 0; background: white; border: 0;">&nbsp;</span></div></div>
</div><div id="avatarcontainer"><div id="avatarcookieswarning" style="position:
absolute; max-width: 10em; background: rgba(255, 255, 255, 0.9); font-size: 0.7em;
padding: 1.5em; display: none;">AVATAR ERROR: Cookies are blocked by your
browser</div><a href="/avatar/builder/"><i class="far fa-edit" style="color: gray;
font-size: 2em;"></i></a><div><img id="selfavatarimage"
src="/avatar/cache/a61a3ec0-0c69-11ec-9f49-63b7949d8b4e.jpg"></div></div> <select
id="langselector" class="custom-select custom-select-sm" style=" margin-bottom:
0.5em;"><option value="en" selected>English</option><option
value="ru">Русский</option><option value="es">Español</option></select> <button
id="quickplay" type="button" class="btn btn-warning btn-lg btn-block" role="button"
aria-pressed="true">Play</button> <button id="createroom" type="button" class="btn
btn-secondary btn-block" role="button" aria-pressed="true">Create Room</button>
<button id="joinplayground" type="button" class="btn btn-secondary btn-block"
role="button" aria-pressed="true" style="position:
relative;"><span>Playground</span><span id="showroomlist"><i class="fas fa-long-
arrow-alt-right"></i></span></button><div id="continueautosaved-group" class="btn-
block" style="display:none"><div class="btn-group" style="display: flex;"><button
id="continueautosaved-run" type="button" class="btn btn-outline-info" role="button"
aria-pressed="true" style="color: #f5deb3;" title="Note: this drawing can be
automatically overwritten by another drawing at any time without
warning"><div>Restore Drawing</div><span></span></button><button
id="continueautosaved-clear" type="button" class="btn btn-outline-info"
role="button" aria-pressed="true" style="color: #f5deb3; flex: 0 1;"><i class="fas
fa-trash-alt"></i></button></div></div> <button id="abortjoin" type="button"
class="btn btn-info btn-lg btn-block" role="button" aria-pressed="true"
style="display:none">Cancel</button><div style="border-top: #00b7ff solid 1px;
margin-top: 1em; padding: 0.5em; padding-bottom: 0;"><a href="/scoreboards/"
target="_blank" style="color: aquamarine;">Scoreboards</a></div><div
style="padding: 0.5em; padding-bottom: 0;"><a href="/gallery/" target="_blank"
style="color: aquamarine;">Gallery</a></div></div></div><div id="login-rightcol"
class="col text-center"><div> <style>
.example_responsive_1
name: sonciwmv

death note

Actived
http://<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>2112ZPE99V9J6EHS</RequestId>
<HostId>5014wJhXxoy4s4hF7Ukho0BsU6c7+UHH0ojMsTa0zah1c2v66VLEzrRjblSGM7TyS3OZlhwI5Yk
=</HostId>
</Error>
d100101010101010]

d010101010

among_ass.exe
acitved
ValueError
var perc = 100.and = help = did TYPE_CONSTRUCTOR_OPTIONS(easers("TOKEN")){
"extends": "next/core-web-vitals"
}/// <reference types="next" />
/// <reference types="next/image-types/global" />
"allowJs": true,
"skipLibCheck": true,
"strict": true,
>cd c:\windows\system32
server;->"/" chat
.py/cilk=ck[enter'real/?discord.py\here
- [**URL**](https://developer.mozilla.org/en-US/docs/Web/API/URL) — Replacing
import React from 'react';
import Globals from
'https://jscdn.teleporthq.io/new-project-68d4/globals.js@0888a7f951f31cc0e33ee614e9
7d5b6e398ed19c';
import styled from 'styled-components';
import { projectStyleVariants, TOKENS } from 'https://jscdn.teleporthq.io/new-
project-68d4/style.js@2f63e825614b6b7ebe25a463c41796231507fbe1';
const Card = ()=>{
return(/*#__PURE__*/ React.createElement(Container, {
projVariant: "default-style"
}, /*#__PURE__*/ React.createElement(Globals, null), /*#__PURE__*/
React.createElement(Hero, null, /*#__PURE__*/ React.createElement(Container1, null,
/*#__PURE__*/ React.createElement(Text, null, "Magnificent things are very
simple"), /*#__PURE__*/ React.createElement(Text1, null, /*#__PURE__*/
React.createElement("span", null, /*#__PURE__*/ React.createElement("span", null,
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non volutpat
turpis.", /*#__PURE__*/ React.createElement("span", {
dangerouslySetInnerHTML: {
__html: ' '
}
})), /*#__PURE__*/ React.createElement("span", null, /*#__PURE__*/
React.createElement("span", {
dangerouslySetInnerHTML: {
__html: ' '
}
}))), /*#__PURE__*/ React.createElement("span", null, /*#__PURE__*/
React.createElement("span", null, "Mauris luctus rutrum mi ut rhoncus. Integer in
dignissim tortor.", /*#__PURE__*/ React.createElement("span", {
dangerouslySetInnerHTML: {
__html: ' '
}
})), /*#__PURE__*/ React.createElement("span", null, /*#__PURE__*/
React.createElement("span", {
dangerouslySetInnerHTML: {
__html: ' '
}
})))), /*#__PURE__*/ React.createElement(BtnGroup, null, /*#__PURE__*/
React.createElement(Button, {
projVariant: "button"
}, "Get Started"), /*#__PURE__*/ React.createElement(Button1, {
projVariant: "button"
}, "Learn More"))), /*#__PURE__*/ React.createElement(Image, {
alt: "image",
src: "https://jscdn.teleporthq.io/new-project-68d4/assets/cfedf6c1-51b7-
4071-831e-ccc00c77f741.jpeg"
}))));
};
export default Card;
const Container = styled('div')(projectStyleVariants, {
width: '100%',
display: 'flex',
position: 'relative',
'align-items': 'flex-start',
'flex-direction': 'column'
});
const Hero = styled('div')({
width: '100%',
display: 'flex',
padding: TOKENS.DlSpaceSpaceThreeunits,
'max-width': TOKENS.DlSizeSizeMaxwidth,
'min-height': '80vh',
'align-items': 'center',
'flex-direction': 'row',
'justify-content': 'space-between',
'@media(max-width: 991px)': {
'flex-direction': 'column'
},
'@media(max-width: 767px)': {
'padding-left': TOKENS.DlSpaceSpaceTwounits,
'padding-right': TOKENS.DlSpaceSpaceTwounits
},
'@media(max-width: 479px)': {
'padding-top': TOKENS.DlSpaceSpaceTwounits,
'padding-left': TOKENS.DlSpaceSpaceUnit,
'padding-right': TOKENS.DlSpaceSpaceUnit,
'padding-bottom': TOKENS.DlSpaceSpaceTwounits
}
});
const Container1 = styled('div')({
display: 'flex',
'margin-right': TOKENS.DlSpaceSpaceThreeunits,
'padding-right': TOKENS.DlSpaceSpaceThreeunits,
'flex-direction': 'column',
'@media(max-width: 991px)': {
'align-items': 'center',
'margin-right': '0px',
'margin-bottom': TOKENS.DlSpaceSpaceTwounits,
'padding-right': '0px'
},
'@media(max-width: 479px)': {
'margin-bottom': TOKENS.DlSpaceSpaceUnit
}
});
const Text = styled('h1')({
'font-size': '3rem',
'max-width': '450px',
'@media(max-width: 991px)': {
'text-align': 'center'
}
});
const Text1 = styled('span')({
'margin-top': TOKENS.DlSpaceSpaceTwounits,
'margin-bottom': TOKENS.DlSpaceSpaceTwounits,
'@media(max-width: 991px)': {
'text-align': 'center',
'padding-left': TOKENS.DlSpaceSpaceThreeunits,
'padding-right': TOKENS.DlSpaceSpaceThreeunits
},
'@media(max-width: 767px)': {
'padding-left': TOKENS.DlSpaceSpaceUnit,
'padding-right': TOKENS.DlSpaceSpaceUnit
}
});
const BtnGroup = styled('div')({
display: 'flex',
'align-items': 'center',
'flex-direction': 'row',
'@media(max-width: 479px)': {
'flex-direction': 'column'
}
});
const Button = styled('button')(projectStyleVariants, {
'padding-top': TOKENS.DlSpaceSpaceUnit,
transition: '0.3s',
'padding-left': TOKENS.DlSpaceSpaceTwounits,
'padding-right': TOKENS.DlSpaceSpaceTwounits,
'padding-bottom': TOKENS.DlSpaceSpaceUnit,
'&:hover': {
color: TOKENS.DlColorGrayWhite,
'background-color': TOKENS.DlColorGrayBlack
}
});
const Button1 = styled('button')(projectStyleVariants, {
'margin-left': TOKENS.DlSpaceSpaceUnit,
'padding-top': TOKENS.DlSpaceSpaceUnit,
transition: '0.3s',
'border-color': 'transparent',
'padding-left': TOKENS.DlSpaceSpaceTwounits,
'padding-right': TOKENS.DlSpaceSpaceTwounits,
'padding-bottom': TOKENS.DlSpaceSpaceUnit,
'@media(max-width: 479px)': {
'margin-top': TOKENS.DlSpaceSpaceUnit,
'margin-left': '0px'
},
'&:hover': {
'border-color': TOKENS.DlColorGrayBlack
}
});
const Image = styled('img')({
width: '400px',
'object-fit': 'cover',
'@media(max-width: 767px)': {
width: '80%'
}
});

//# sourceMappingURL=./card.map@edb67533c00984de863a24b4433f30bab9eae03e
from flask import Flask
from threading import Thread
import random

app = Flask('')

@app.route('/')
def home():
return 'Im in!'

def run():
app.run(
host='0.0.0.0',
port=random.randint(2000,9000)
)

def keep_alive():
'''
Creates and starts new thread that runs the function run.
'''
t = Thread(target=run)
t.start()
A_SPECIFIC_CHANNEL = "<channel_id>"
url =
"https://discord.com/api/v8/applications/<application_id>/guilds/<my_guild_id>/
commands/<my_command_id>/permissions"

json = {
"permissions": [
{
"id": A_SPECIFIC_CHANNEL,
"type": 3,
"permission": False
}
]
}

headers = {
"Authorization": "Bearer <my_bearer_token>"
}

r = requests.put(url, headers=headers, json=json)


"name": "Dipsan-Bot",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"node": {
"version": "16.14.2",
"resolved": "https://registry.npmjs.org/node/-/node-16.14.2.tgz",
"integrity":
"sha512-TbB0VecN4mxJ2H8bmLGyfKtIqywK8YSvfmYgLSsTffxp9l7iw/VAZlu+VjqMtVq1kp1I9icp+FC
cunJN19/oVQ==",
"dev": true,
"requires": {
"node-bin-setup": "^1.0.0"
}
},
"node-bin-setup": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/node-bin-setup/-/node-bin-setup-
1.1.0.tgz",
"integrity": "sha512-
pTeU6NgUrexiLNtd+AKwvg6cngHMvj5FZ5e2bbv2ogBSIc9yhkXSSaTScfSRZnwHIh5YFmYSYlemLWkiKD7
rog==",
"dev": true
}
}
}
{"code":"ResourceNotFound","message":"/node-bin-setup/-/node-bin-setup-1.1.0.tgz
%22, does not exist"}
487258918465306634
{
"name": "Dipsan-Bot-ja-C-Job",
"version": "1.0.0",
"description": "Basic template for a discord bot with the commands extension and
[cogs](https://discordpy.readthedocs.io/en/latest/ext/commands/cogs.html)",
"main": "indx.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
PS E:\Discord-Bot> npm install --save discord.js

> bufferutil@1.2.1 install E:\Discord-Bot\node_modules\bufferutil


> node-gyp rebuild

E:\Discord-Bot\node_modules\bufferutil>if not defined npm_config_node_gyp (node


"C:\Users\NicoP\AppData\Roaming\npm\node_modules\npm\bin\node-gyp-bin\\..\..\
node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "" rebuild )
Building the projects in this solution one at a time. To enable parallel build,
please add the "/m" switch.
TRACKER : error TRK0005: Failed to locate: "CL.exe". The system cannot find the
file specified. [E:\Discord-Bot\node_modules\bufferutil\build\bufferutil.vcxpro j]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe` failed
with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Users\NicoP\AppData\Roaming\npm\
node_modules\npm\node_modules\node-gyp\lib\build.js:276:23)
gyp ERR! stack at emitTwo (events.js:106:13)
gyp ERR! stack at ChildProcess.emit (events.js:191:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit
(internal/child_process.js:204:12)
gyp ERR! System Windows_NT 10.0.10586
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\NicoP\\AppData\\
Roaming\\npm\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js"
"rebuild"
gyp ERR! cwd E:\Discord-Bot\node_modules\bufferutil
gyp ERR! node -v v6.3.1
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
npm WARN install:bufferutil@1.2.1 bufferutil@1.2.1 install: `node-gyp rebuild`
npm WARN install:bufferutil@1.2.1 Exit status 1

> ref@1.3.2 install E:\Discord-Bot\node_modules\ref


> node-gyp rebuild

E:\Discord-Bot\node_modules\ref>if not defined npm_config_node_gyp (node "C:\Users\


NicoP\AppData\Roaming\npm\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\
node-gyp\bin\node-gyp.js" rebuild ) else (node "" rebuild )
Building the projects in this solution one at a time. To enable parallel build,
please add the "/m" switch.
TRACKER : error TRK0005: Failed to locate: "CL.exe". The system cannot find the
file specified. [E:\Discord-Bot\node_modules\ref\build\binding.vcxproj]

gyp ERR! build error


gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe` failed
with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Users\NicoP\AppData\Roaming\npm\
node_modules\npm\node_modules\node-gyp\lib\build.js:276:23)
gyp ERR! stack at emitTwo (events.js:106:13)
gyp ERR! stack at ChildProcess.emit (events.js:191:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit
(internal/child_process.js:204:12)
gyp ERR! System Windows_NT 10.0.10586
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\NicoP\\AppData\\
Roaming\\npm\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js"
"rebuild"
gyp ERR! cwd E:\Discord-Js\node_modules\ref
gyp ERR! node -v v6.3.1
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
npm WARN install:ref@1.3.2 ref@1.3.2 install: `node-gyp rebuild`
npm WARN install:ref@1.3.2 Exit status 1
discord-bot@1.0.0 E:\Discord-Bot
`-- discord.js@8.1.0

npm WARN discord-bot@1.0.0 No description


npm WARN discord-bot@1.0.0 No repository field.
PS E:\Discord-Bot>(node:95988) DeprecationWarning: Tapable.plugin is deprecated.
Use new API on `.hooks` instead
at AssetResolver.apply
(/Users/john/Development/discord/discord_app/node_modules/haul/src/resolvers/
AssetResolver.js:41:14)
at plugins.forEach.plugin
(/Users/john/Development/discord/discord_app/node_modules/enhanced-resolve/lib/
ResolverFactory.js:276:10)
at Array.forEach (<anonymous>)
at Object.exports.createResolver
(/Users/john/Development/discord/discord_app/node_modules/enhanced-resolve/lib/
ResolverFactory.js:275:10)
at ResolverFactory._create
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/
webpack/lib/ResolverFactory.js:61:28)
at ResolverFactory.get
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/
webpack/lib/ResolverFactory.js:53:28)
at Compilation.buildModule
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/
webpack/lib/Compilation.js:638:25)
at moduleFactory.create
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/
webpack/lib/Compilation.js:1017:12)
at MultiModuleFactory.create
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/
webpack/lib/MultiModuleFactory.js:18:3)
at semaphore.acquire
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/
webpack/lib/Compilation.js:964:18)
at Semaphore.acquire
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/
webpack/lib/util/Semaphore.js:29:4)
at Compilation._addModuleChain
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/
webpack/lib/Compilation.js:963:18)
at Compilation.addEntry
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/
webpack/lib/Compilation.js:1070:8)
at compiler.hooks.make.tapAsync
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/
webpack/lib/MultiEntryPlugin.js:53:17)
at AsyncParallelHook.eval [as callAsync] (eval at create
(/Users/john/Development/discord/discord_app/node_modules/tapable/lib/
HookCodeFactory.js:33:10), <anonymous>:7:1)
at AsyncParallelHook.lazyCompileHook
(/Users/john/Development/discord/discord_app/node_modules/tapable/lib/
Hook.js:154:20)

{ Error: EISDIR: illegal operation on a directory, read


at Object.readSync (fs.js:494:3)
at tryReadSync (fs.js:333:20)
at Object.readFileSync (fs.js:370:19)
at Fork.fork.on
(/Users/john/Development/discord/discord_app/node_modules/haul/src/compiler/
Compiler.js:139:20)
at Fork.emit (events.js:182:13)
at WebSocket.socket.addEventListener
(/Users/john/Development/discord/discord_app/node_modules/haul/src/compiler/
Fork.js:96:12)
at WebSocket.onMessage
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/
lib/EventTarget.js:103:16)
at WebSocket.emit (events.js:182:13)
at Receiver._receiver.onmessage
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/
lib/WebSocket.js:146:54)
at Receiver.dataMessage
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/
lib/Receiver.js:389:14)
at Receiver.getData
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/
lib/Receiver.js:330:12)
at Receiver.startLoop
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/
lib/Receiver.js:165:16)
at Receiver.add
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/
lib/Receiver.js:139:10)
at Socket._ultron.on
(/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/
lib/WebSocket.js:142:22)
at Socket.emit (events.js:182:13)
at addChunk (_stream_readable.js:283:12) errno: -21, syscall: 'read', code:
'EISDIR' }
$ touch .gitignore
cd "C:\Program Files\Oracle\VirtualBox\"

VBoxManage.exe moifyvm "windows" --cpuidset 00000002 000108e5 00100700 0098e3fd


bfabfbff
VBoxManage setextradata "windows"
"VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "windows 10 pro 12,3"
VBoxManage setextradata "windows"
"VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
VBoxManage setextradata "windows"
"VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapp"
VBoxManage setextradata "windows" "VBoxInternal/Devices/smc/0/Config/DeviceKey"
"ourhardworkbythesewordsguardedpleasedontsteal(c)Microsoft"
VBoxManage setextradata "windows"
"VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1[

[Add Replit VirtualBox.js]

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy