答:
The documentation doesn't say this, but apparently akima::bilinear assumes that both x and y are increasing, and that x0 and y0 fall in their range.

In your data, y is c(-34.0, -34.1, -34.2, -34.3, -34.4) which is decreasing.  So put it in increasing order, and modify z in a corresponding way.

You'll still have the problem that only the first two of your (x0, y0) points falls  in the range of your data.  To fix that, you'll need more data, or fewer points to interpolate.

Here are some calculations to illustrate:

# Your original data:

x <- c(-70.6, -70.5, -70.4, -70.3, -70.2)
y <- c(-34.0, -34.1, -34.2, -34.3, -34.4)
z <- matrix(c(151, 151, 154, 162, 171, 142, 142, 146, 155, 167, 137, 135.09, 141.57, 153.08, 164.60, 139.00, 139.22, 144.59, 154.31, 163.37, 143.13, 144.59, 149.90, 158.23, 164.99), nrow = 5, ncol = 5)
x0 <- c(-70.6, -70.35, -70.65, -71.85)
y0 <- c(-34.0, -34.05, -34.37, -33.88)

library(akima)

# Completely bad results:
bilinear(x, y, z, x0, y0)
#> $x
#> [1] -70.60 -70.35 -70.65 -71.85
#>
#> $y
#> [1] -34.00 -34.05 -34.37 -33.88
#>
#> $z
#> [1] 0 0 0 0

# Fix y and z:
y <- rev(y)
z <- z[, 5:1]
bilinear(x, y, z, x0, y0)
#> $x
#> [1] -70.60 -70.35 -70.65 -71.85
#>
#> $y
#> [1] -34.00 -34.05 -34.37 -33.88
#>
#> $z
#> [1] 151.00 154.25   0.00   0.00

x0 < min(x)
#> [1] FALSE FALSE  TRUE  TRUE
```

Created on 2022-02-08 by the reprex package (v2.0.1.9000)

We now have some reasonable interplated values for the 1st two points, but not the last two.  But look at x0 < min(x):  it is TRUE for the last two points.  They are out of range.

Title: Akima function 'bilinear' is only returning zeros when making interpolations in RStudio

Body:
I'm trying to interpolate data from ERA5 Interim to a finer resolution (from 0.1° to 0.05°). I'm using the bilinear function from the akima package in Rstudio to do so, but whenever I try to compute it I only get zeros. What might be the reason behind this?

As a simplification of my data, I run this line

test_bilinear = bilinear(c(-70.6, -70.5, -70.4, -70.3, -70.2),
                         c(-34.0, -34.1, -34.2, -34.3, -34.4),
                         matrix(c(151, 151, 154, 162, 171, 142, 142, 146, 155, 167, 137, 135.09, 141.57, 153.08, 164.60, 139.00, 139.22, 144.59, 154.31, 163.37, 143.13, 144.59, 149.90, 158.23, 164.99), nrow = 5, ncol = 5),
                         c(-70.6, -70.35, -70.65, -71.85),
                         c(-34.0, -34.05, -34.37, -33.88))[["z"]]

> test_bilinear
[1] 0 0 0 0

But, when I use an example of the bilinear function, it works as intended.

x <- c(0, 2.5, 5, 7.5, 10)
y <- c(50, 55, 60, 65, 70)
z <- matrix(rnorm(25), 5, 5)
x0 <- seq(0, 10, .5)
y0 <- seq(50, 70, length = length(x0))

bilinear(x, y, z, x0, y0)[["z"]]

> bilinear(x, y, z, x0, y0)[["z"]]
 [1] 0.5212130 0.4629981 0.6316416 1.0271434 1.6495036 2.4987221 1.6069258 0.9774763 0.6103738
[10] 0.5056182 0.6632096 0.6206286 0.6874867 0.8637841 1.1495206 1.5446963 0.7932024 0.3964096
[19] 0.3543180 0.6669276 1.3342383

What might be the problem?

Body:
The documentation doesn't say this, but apparently akima::bilinear assumes that both x and y are increasing, and that x0 and y0 fall in their range.

In your data, y is c(-34.0, -34.1, -34.2, -34.3, -34.4) which is decreasing.  So put it in increasing order, and modify z in a corresponding way.

You'll still have the problem that only the first two of your (x0, y0) points falls  in the range of your data.  To fix that, you'll need more data, or fewer points to interpolate.

Here are some calculations to illustrate:

# Your original data:

x <- c(-70.6, -70.5, -70.4, -70.3, -70.2)
y <- c(-34.0, -34.1, -34.2, -34.3, -34.4)
z <- matrix(c(151, 151, 154, 162, 171, 142, 142, 146, 155, 167, 137, 135.09, 141.57, 153.08, 164.60, 139.00, 139.22, 144.59, 154.31, 163.37, 143.13, 144.59, 149.90, 158.23, 164.99), nrow = 5, ncol = 5)
x0 <- c(-70.6, -70.35, -70.65, -71.85)
y0 <- c(-34.0, -34.05, -34.37, -33.88)

library(akima)

# Completely bad results:
bilinear(x, y, z, x0, y0)
#> $x
#> [1] -70.60 -70.35 -70.65 -71.85
#>
#> $y
#> [1] -34.00 -34.05 -34.37 -33.88
#>
#> $z
#> [1] 0 0 0 0

# Fix y and z:
y <- rev(y)
z <- z[, 5:1]
bilinear(x, y, z, x0, y0)
#> $x
#> [1] -70.60 -70.35 -70.65 -71.85
#>
#> $y
#> [1] -34.00 -34.05 -34.37 -33.88
#>
#> $z
#> [1] 151.00 154.25   0.00   0.00

x0 < min(x)
#> [1] FALSE FALSE  TRUE  TRUE

Created on 2022-02-08 by the reprex package (v2.0.1.9000)

We now have some reasonable interplated values for the 1st two points, but not the last two.  But look at x0 < min(x):  it is TRUE for the last two points.  They are out of range.


来源: stackexchange

问:
Defining a lazy stream in Scala (translating a Racket example)
I was learning Racket (University of Washington Programming Languages course on Coursera) and there is an interesting example to define a lazy stream of values in Racket:

```<code>(define ones
  (lambda () (cons 1 ones)))
</code>```

Basically this defines a function ones that returns a lambda that when called returns a tuple that the first element is 1 and the second element is the method itself.

I was trying to define this function in Scala but cannot get the typing right, there is some weird recursion going on:

```<code>def ones = () => (1, ones) // This complains that recursive function should have types
def ones: () => (Int, ???) = () => (1, ones) // What is the type here?
</code>```

What's the correct type for this function?

答:
Well (1, ones) is just a tuple, and a tuple has a fixed size so it can't be infinite, but you can just construct a LazyList just like in the racket example like this:

lazy val ones = 1 #:: ones
```
<p>Or even simpler:</p>
<pre class="lang-scala prettyprint-override"><code>val ones = LazyList.continually(1)
</code>```

ContentLicense: CC BY-SA 4.0

Body:
I was learning Racket (University of Washington Programming Languages course on Coursera) and there is an interesting example to define a lazy stream of values in Racket:

(define ones
  (lambda () (cons 1 ones)))

Basically this defines a function ones that returns a lambda that when called returns a tuple that the first element is 1 and the second element is the method itself.

I was trying to define this function in Scala but cannot get the typing right, there is some weird recursion going on:

def ones = () => (1, ones) // This complains that recursive function should have types
def ones: () => (Int, ???) = () => (1, ones) // What is the type here?

What's the correct type for this function?

Body:
Well (1, ones) is just a tuple, and a tuple has a fixed size so it can't be infinite, but you can just construct a LazyList just like in the racket example like this:

lazy val ones = 1 #:: ones

Or even simpler:

val ones = LazyList.continually(1)


问:
Grabbing other element's from array firestore
I am needing help with grabbing certain details about an audio uploaded to my Firestore Database. This is how the data is entered in my document for the audio :

It can take in multiple audio urls with information and store them in the array of AudioUrl. I originally had it to where it just took in the audio url with no additional information except the name but it was structured like this wowza:"https://firbase......" and would be able to fetch the key as the audio name and the value as the audio file. Ever since I have changed the structure of the data to allow additonal information for each audio url uploaded, I have been having a hard time figuring out to actually fetch the rest of the data. This is my current api call to grab the data from firestore:

```<code>            guard let documents = snapshot?.documents else { return }
        for document in documents {
            let songID = document.documentID
            let data = document.data()
            let uid = data["uid"] as! String
            let photoURL = data["photoURL"] as? String
            let trackTitle = data["trackTitle"] as? String
            let url = URL (string:photoURL!)
            let coverImageURL = data["coverImage"] as? String
            let imageURL = URL (string:coverImageURL!)
            let audios = data["AudioUrl"] as! [[String:Any]]
            var audioNames  = [String]()
            var audioUrls  = [URL]()
            let timestamp = data["timestampt"] as? Double
            for audio in audios{
                let audioName = audio.first?.key
                let audioUrl = audio.first?.value as? String
                let songURL = URL (string:audioUrl!)
                audioNames.append(audioName!)
                audioUrls.append(songURL!)
                UserService.shared.fetchUser(uid: uid) { user in
                  let song = SongPost(id: songID, author: user, title: trackTitle!, coverImage: imageURL!, audioUrl: audioUrls , audioName: audioNames , likes: 0 , timestamp: timestamp!, streams: 0)
                  self.songs.removeAll(where: {$0.id == songID})
                  self.songs.append(song)
                  self.songs = self.songs.sorted(by: { $0.createdAt > $1.createdAt})
                  self.collectionView.reloadData()
                }
            }
        }
</code>```

The for loop where it starts as for audio in audios is where I fetch the information about the audio url stored in the array. I'm sure there is a way to splice the array or grab each element by index but I am sadly stuck on this. Thank you in advance!

答:
The Firestore syntax is straightforward:

```<code>for doc in documents {
    if let audioUrl = doc.get("audioUrl") as? [[String: Any]] {
        for url in audioURL {
            if let name = url["Name"] as? String {
                print(name)
            }
        }
    }
}
</code>```

This would be a good time to mess around in an Xcode playground. AudioURL is an array of dictionaries (called maps in Firestore) so just create an arbitrary array of dictionaries and get the hang of them. Plug this into a playground:

```<code>import Foundation

let audioURL: [[String: Any]] = [
    ["File": "abc123", "Likes": 0, "Name": "Wowza"],
    ["File": "xyz456", "Likes": 1, "Name": "Yowza"]
]

for url in audioURL {
    if let file = url["File"] as? String,
       let likes = url["Likes"] as? Int,
       let name = url["Name"] as? String {
        print(file, likes, name)
    }
}
</code>```

Body:
I am needing help with grabbing certain details about an audio uploaded to my Firestore Database. This is how the data is entered in my document for the audio :

It can take in multiple audio urls with information and store them in the array of AudioUrl. I originally had it to where it just took in the audio url with no additional information except the name but it was structured like this wowza:"https://firbase......" and would be able to fetch the key as the audio name and the value as the audio file. Ever since I have changed the structure of the data to allow additonal information for each audio url uploaded, I have been having a hard time figuring out to actually fetch the rest of the data. This is my current api call to grab the data from firestore:

            guard let documents = snapshot?.documents else { return }
        for document in documents {
            let songID = document.documentID
            let data = document.data()
            let uid = data["uid"] as! String
            let photoURL = data["photoURL"] as? String
            let trackTitle = data["trackTitle"] as? String
            let url = URL (string:photoURL!)
            let coverImageURL = data["coverImage"] as? String
            let imageURL = URL (string:coverImageURL!)
            let audios = data["AudioUrl"] as! [[String:Any]]
            var audioNames  = [String]()
            var audioUrls  = [URL]()
            let timestamp = data["timestampt"] as? Double
            for audio in audios{
                let audioName = audio.first?.key
                let audioUrl = audio.first?.value as? String
                let songURL = URL (string:audioUrl!)
                audioNames.append(audioName!)
                audioUrls.append(songURL!)
                UserService.shared.fetchUser(uid: uid) { user in
                  let song = SongPost(id: songID, author: user, title: trackTitle!, coverImage: imageURL!, audioUrl: audioUrls , audioName: audioNames , likes: 0 , timestamp: timestamp!, streams: 0)
                  self.songs.removeAll(where: {$0.id == songID})
                  self.songs.append(song)
                  self.songs = self.songs.sorted(by: { $0.createdAt > $1.createdAt})
                  self.collectionView.reloadData()
                }
            }
        }

The for loop where it starts as for audio in audios is where I fetch the information about the audio url stored in the array. I'm sure there is a way to splice the array or grab each element by index but I am sadly stuck on this. Thank you in advance!

Body:
The Firestore syntax is straightforward:

for doc in documents {
    if let audioUrl = doc.get("audioUrl") as? [[String: Any]] {
        for url in audioURL {
            if let name = url["Name"] as? String {
                print(name)
            }
        }
    }
}

This would be a good time to mess around in an Xcode playground. AudioURL is an array of dictionaries (called maps in Firestore) so just create an arbitrary array of dictionaries and get the hang of them. Plug this into a playground:

import Foundation

let audioURL: [[String: Any]] = [
    ["File": "abc123", "Likes": 0, "Name": "Wowza"],
    ["File": "xyz456", "Likes": 1, "Name": "Yowza"]
]

for url in audioURL {
    if let file = url["File"] as? String,
       let likes = url["Likes"] as? Int,
       let name = url["Name"] as? String {
        print(file, likes, name)
    }
}


问:
In xCode, I'm getting the error "Loaded the nib but the view outlet was not set"?
I know there are multiple questions asking the same thing, but none of their solutions worked for me.

I made a custom viewController class (Home), and I made a .xib separately. (Effectively, I'll have 2 nibs -- one for the ipad version to load, and another for the iphone).

When I try to instantiate an instance of the home class, I got the error I mentioned in the question.

In the xib file, all I did was drag a viewcontroller object from the library to the screen, and it automatically added a viewcontroller icon below the file's owner and the first responder. I then went into the inspector of the viewController object and changed the class from viewController to Home.

The next step that I've discerned from the solutions is to connect the view outlet from the inspector. I'm not entirely sure what I'm supposed to be connecting it to. The solutions I've found say to connect it to the view icon, but again, all I see is files owner, first responder, and the vc object. It connects to none of them

Here is what I put in the app delegate

```<code>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

 Home *homePage = [[Home alloc] initWithNibName:@"HomeIpad" bundle:nil];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:homePage];
[self.window addSubview:navController.view];
[self.window makeKeyAndVisible];
return YES;
}
</code>```

答:
I would suggest you to create the Nib using Xcode's File->New->New File->Cocoa Touch->UIViewController subclass->with XIB for user interface (do this twice, once with Targeted for iPad checked). I find this to be the most reliable way of creating and hooking up XIBs.

Even if you want two XIBs for the same controller, create the 2nd VC subclass using any temporary name (say tempvc). Now, rename tempvc.xib to HomeIpad.xib. Right Click on HomeIpad.xib and select Open As->Source code. In the source, search for tempvc and replace it with the name of your controller for all occurrences. Everything should be good now.

ContentLicense: CC BY-SA 3.0

Body:
I know there are multiple questions asking the same thing, but none of their solutions worked for me.

I made a custom viewController class (Home), and I made a .xib separately. (Effectively, I'll have 2 nibs -- one for the ipad version to load, and another for the iphone).

When I try to instantiate an instance of the home class, I got the error I mentioned in the question.

In the xib file, all I did was drag a viewcontroller object from the library to the screen, and it automatically added a viewcontroller icon below the file's owner and the first responder. I then went into the inspector of the viewController object and changed the class from viewController to Home.

The next step that I've discerned from the solutions is to connect the view outlet from the inspector. I'm not entirely sure what I'm supposed to be connecting it to. The solutions I've found say to connect it to the view icon, but again, all I see is files owner, first responder, and the vc object. It connects to none of them

Here is what I put in the app delegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

 Home *homePage = [[Home alloc] initWithNibName:@"HomeIpad" bundle:nil];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:homePage];
[self.window addSubview:navController.view];
[self.window makeKeyAndVisible];
return YES;
}


问:
Oh-my-posh themes not working correctly with Powerline font and ConEmu
I use PowerShell as my shell on Windows 7. I find that ConEmu is a really good terminal. Since I am not on Windows 10, I cannot use Windows Terminal but ConEmu is not bad at all. I found out about posh-git and oh-my-posh and how they can customize your PowerShell experience. I installed oh-my-posh and the Paradox theme looked nice. But I saw some empty boxes in random places in my Prompt.

And this is an issue that I face on all the themes. The colors and the design are beautiful and I want to use it but those weird boxes are keeping me from doing that. I would also like to tell that I am using Cascadia Code as my font and also this is the Powerline version of Cascadia Code. So, I think it should work as excepted. Next, trying to fix this, I went to nerdfont.com and I installed Cascadia Code from there as opposed to Microsoft's official GitHub repository. Then I set ConEmu's font to Cascadia which I installed from nerdfonts and this happened:

It's better in a way that I can see the Python symbol and some more symbols but still there is one box that cannot be rendered. But it does get worse if I change repository:

There is a weird question mark after "master". I think I have met all the prerequisites to use oh-my-posh like install posh-git and PSReadLine and having powerline Cascadia Code font and also using ConEmu as they officially suggest. I would absolutely appreciate it a lot if anyone can help me out of this mess and suggest what to do to fix my prompt.

P.S I am using PowerShell 7 Core.

答:
Posting this response because I followed @HAL9256 's response and it was extremely helpful but I had to take it one step further. If you are using windows terminal, you actually have to set the terminal to use the nerd font. This took me far too long to figure out so hopefully it helps the next person.

In windows terminal, open the settings, then the Defaults on the left blad, then the appearance tab, finally change the fontface to something nerd font

https://www.jondjones.com/media/rhzobluq/customise-your-powershell-prompt-like-a-boss-c.gif

source: https://www.jondjones.com/tactics/productivity/customise-your-powershell-prompt-like-a-boss/


问:
Is there a difference between casting to Interface and to a contract instance?
In solidity, most smart contracts cast external contract calls to interfaces (IERC20 vs. ERC20). Is there any difference casting between the two?

For example, if I write

IERC20 Token = IERC20(tokenContractAddress);

Is there any functional difference to

ERC20 Token = ERC20(tokenContractAddress);?

Just curious if there are factors to consider in terms of gas costs, compatibility issues, etc. Thanks!

答:
If you just want to access the functions, you can use either. But in interfaces you cannot have state variables so if you need some state variables you cast to contract.

Also interfaces cannot inherit other contracts or interfaces. Maybe the contract is inheriting from contractB and in your contract you want to access to contractB.


问:
Bicep yaml pipeline removes devops subscription
I'm setting up my Bicep template to be deployed in a 'Complete' way and every successful build removes the subscription on my Devops page, what resource do I need to add to my bicep template to maintain the billing on my devops project?

At first I was thinking a managed connection but not sure how to define my organization in devops under bicep either.

答:
The only way to delete resources via a a pure ARM deployment (e.g. no deployment scripts) is through use of the Complete mode. My guess is that you're deploying resources via one template, it creates the subscription, resource groups and resources, then you're running this subsequent template (as Complete) which doesn't reference any of the above, so when it completes, it's removing everything that's not defined (everything) leaving you in your starting state.

Rather, change this to Incremental so you're always adding resources instead of your template reflecting the "final state" the deployment should be in.


问:
Installing --global windows-build-tools never completes
I am trying to install --global windows-build-tools by running below command

npm install --global windows-build-tools -verbose

No matter if I try through PowerShell or CMD (both as Administrator), the installation gets stuck in the same step.

npm info run windows-build-tools@5.2.2 postinstall node_modules/windows-build-tools node ./dist/index.js
[##################] | reify:resolve: info run windows-build-tools@5.2.2 postinstall node_modules/windows-build-tools node ./dist/index.js

Is there a reason why this might not complete?

答:
Following this thread for a while now.

Disclaimer: Please note that I know this is not directly answering your question about why the process gets stuck but I want to share my solution anyway.

The installation via chocolatey did not work for me, as mentioned in:

https://github.com/felixrieseberg/windows-build-tools/issues/245

https://github.com/felixrieseberg/windows-build-tools/issues/152

Then, I found this microsoft page. On this page, the person asked this question:

I tried to install the Microsoft Visual C++ Build tools. The installer
(filename is visualcppbuildtools_full.exe) stops right after the start
of the installation it says a setup package is missing or damaged("Ein
Setuppaket fehlt oder ist beschädigt"). The option to download it
again doesnt work. Downloading the installer again doesnt help. Trying
to do an offline installation doesnt work either and I get the same
error. How can I find out what exactly the problem is and how can I
solve it?

The solution mentions the page https://my.visualstudio.com/Download that provides different build tool versions:

I was able to download and install "Build Tools for Visual Studio 2017 (version 15.9)".


问:
Merge conflict in Git. Need local env prior to Git Stash + Pull
I used the following git commands:

```<code>git stash
git pull
</code>```

After pull, the command line displayed:

```<code>Auto-merging ...path/ConflictFile.xxx
CONFLICT (content): Merge conflict in ...path/ConflictFile.xxx
Automatic merge failed; fix conflicts and then commit the result.
</code>```

I chose "accept incoming changes" for the conflicts in file 1. Now I want out.

But in case it changes an answer to help me understand, running git status now shows this:

```<code>Your branch and 'origin/develop' have diverged,
and have 1 and 5 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)
</code>```

Then it says (note-these are co-worker's files so I don't understand this)

```<code>Changes to be committed:
/path/fileHeAdded.xxx
/path/fileHeAdded.xxx
/path/fileHeAdded.xxx
/path/fileHeUpdated.xxx
</code>```

Then it says:

```<code>Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   path/ConflictFile.xxx
</code>```
```<code>Untracked files:
  (use "git add <file>..." to include in what will be committed)
        path/OneOfMyUntrackedFiles.xxx
        path/AnotherOfMyUntrackedFiles.xxx
</code>```

Those last ones ^ make sense because they are files I added yesterday but did not stage.

How do I undo both the stash and pull to get back to where I was before I ran them? I read you can run git merge --abort, but will that remove the stash or will I need to remove that separately?

I just want to get things clean before I learn about the conflicts.

Thanks!

答:
To undo

```<code>git stash
git pull
</code>```

Resulting in a merge conflict, say

```<code>git merge --abort
git stash pop
</code>```

Your branch will be exactly where it was before you said those things.

Body:
I used the following git commands:

git stash
git pull

After pull, the command line displayed:

Auto-merging ...path/ConflictFile.xxx
CONFLICT (content): Merge conflict in ...path/ConflictFile.xxx
Automatic merge failed; fix conflicts and then commit the result.

I chose "accept incoming changes" for the conflicts in file 1. Now I want out.

But in case it changes an answer to help me understand, running git status now shows this:

Your branch and 'origin/develop' have diverged,
and have 1 and 5 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Then it says (note-these are co-worker's files so I don't understand this)

Changes to be committed:
/path/fileHeAdded.xxx
/path/fileHeAdded.xxx
/path/fileHeAdded.xxx
/path/fileHeUpdated.xxx

Then it says:

Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   path/ConflictFile.xxx

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        path/OneOfMyUntrackedFiles.xxx
        path/AnotherOfMyUntrackedFiles.xxx

Those last ones ^ make sense because they are files I added yesterday but did not stage.

How do I undo both the stash and pull to get back to where I was before I ran them? I read you can run git merge --abort, but will that remove the stash or will I need to remove that separately?

I just want to get things clean before I learn about the conflicts.

Thanks!

Body:
To undo

git stash
git pull

Resulting in a merge conflict, say

git merge --abort
git stash pop

Your branch will be exactly where it was before you said those things.


问:
Visual Studio keeps saying "error CS1002: ; expected"
I am new to coding with C# in unity and am trying to animate an object in unity, but its saying that I need a semicolon but I can't find where I need one. This is my code:

```<code>{
  public GameObject arm;
  public float time = 0f;
  public bool timedone = false;
  void Update()
  {
     if(time == 1f)
     {
         timedone = true;
     }
     if (Input.GetButtonDown("Fire1"))
     {
         arm.GetComponent<Animator>().Play("New Animation");
     }
     else
     {
         if(!timedone)
         {
             time += Time.deltaTime;
         }
         if (timedone)
         {
            arm.GetComponent<Animator>().Play("New State");
            Timereset()
         }
      }
  }
  void Timereset()
  {
    time == 0f;
  }
}
</code>```

If you can help me I would be very grateful.

答:
You seem to be struggling to navigate to an error. I recommend coding in Visual Studio and I think you are doing that already, because you mention "CS1002" which is a VS error. I'll show you how Visual Studio helps the developer navigate to errors.

In Visual Studio the line number is included in the compiler error message  in the "Error List" tab or window of the GUI. A double-clicking on the error message puts my cursor exactly where the error is (line and column).

Additionally, the error is marked with a red squiggly line in the editor window, exactly where the semicolon is expected.

Here is an image indicating the locations of these features. (Of course there are many more irrelevant compiler errors in this example because I simply copied your code without the Unity development environment.)

Body:
I am new to coding with C# in unity and am trying to animate an object in unity, but its saying that I need a semicolon but I can't find where I need one. This is my code:

{
  public GameObject arm;
  public float time = 0f;
  public bool timedone = false;
  void Update()
  {
     if(time == 1f)
     {
         timedone = true;
     }
     if (Input.GetButtonDown("Fire1"))
     {
         arm.GetComponent<Animator>().Play("New Animation");
     }
     else
     {
         if(!timedone)
         {
             time += Time.deltaTime;
         }
         if (timedone)
         {
            arm.GetComponent<Animator>().Play("New State");
            Timereset()
         }
      }
  }
  void Timereset()
  {
    time == 0f;
  }
}

If you can help me I would be very grateful.


问:
java ClassNotFoundException in jar files
I'm trying to run a java file which is in the /lib/jarfile.jar jar file in the path "il/co/codeguru/corewars8086/CoreWarsEngine" with this command in linux:

```<code>java -cp lib/jarfile.jar il.co.codeguru.corewars8086.CoreWarsEngine
</code>```

but I get this error message:

```<code>Error: Could not find or load main class il.co.codeguru.corewars8086.CoreWarsEngine
</code>```

I read I little bit about classpathes in java but i still don't know what is wrong with what I did...

this is the content of CoreWarsEngine

```<code>package il.co.codeguru.corewars8086;

import il.co.codeguru.corewars8086.gui.CompetitionWindow;

import java.io.IOException;

public class CoreWarsEngine
{
    public static void main (String args[]) throws IOException
    {
        CompetitionWindow c = new CompetitionWindow();
        c.setVisible(true);
        c.pack();
    }
}
</code>```

答:
Make sure the jar file exists at the location you expect it to be and matches the jar file name in the command. This may seam silly, but java that I have, 11 AdoptOpenJDK does not complain that it did not find the jar file:

```<code>java -cp nonexistingfile.jar il.co.codeguru.corewars8086.CoreWarsEngine
Error: Could not find or load main class il.co.codeguru.corewars8086.CoreWarsEngine
Caused by: java.lang.ClassNotFoundException: il.co.codeguru.corewars8086.CoreWarsEngine
</code>```

Second make sure the jar contains the class you are trying to start. I have stumbled on at least one corewars8086 download on the net that does not have the CoreWarsEngine class.

If you got the sources from GitHub/codeguru-il/corewars8086 then you need maven to build it. The resulting jar will be in target/corewars8086-4.0.0-SNAPSHOT-jar-with-dependencies.jar. Or if you build it a different way then you need to figure out where the result jar will be and what is the name.

I managed to run it from the sources of the above repo

Body:
I'm trying to run a java file which is in the /lib/jarfile.jar jar file in the path "il/co/codeguru/corewars8086/CoreWarsEngine" with this command in linux:

java -cp lib/jarfile.jar il.co.codeguru.corewars8086.CoreWarsEngine

but I get this error message:

Error: Could not find or load main class il.co.codeguru.corewars8086.CoreWarsEngine

I read I little bit about classpathes in java but i still don't know what is wrong with what I did...

this is the content of CoreWarsEngine

package il.co.codeguru.corewars8086;

import il.co.codeguru.corewars8086.gui.CompetitionWindow;

import java.io.IOException;

public class CoreWarsEngine
{
    public static void main (String args[]) throws IOException
    {
        CompetitionWindow c = new CompetitionWindow();
        c.setVisible(true);
        c.pack();
    }
}

Body:
Make sure the jar file exists at the location you expect it to be and matches the jar file name in the command. This may seam silly, but java that I have, 11 AdoptOpenJDK does not complain that it did not find the jar file:

java -cp nonexistingfile.jar il.co.codeguru.corewars8086.CoreWarsEngine
Error: Could not find or load main class il.co.codeguru.corewars8086.CoreWarsEngine
Caused by: java.lang.ClassNotFoundException: il.co.codeguru.corewars8086.CoreWarsEngine

Second make sure the jar contains the class you are trying to start. I have stumbled on at least one corewars8086 download on the net that does not have the CoreWarsEngine class.

If you got the sources from GitHub/codeguru-il/corewars8086 then you need maven to build it. The resulting jar will be in target/corewars8086-4.0.0-SNAPSHOT-jar-with-dependencies.jar. Or if you build it a different way then you need to figure out where the result jar will be and what is the name.

I managed to run it from the sources of the above repo


问:
Using dropdown parameters in SSRS report
I can see the text box for my data set that having the </p>

<p>"select col1 from table name " as query. I want to populate dropdown instead of text box. I  have created the parameter for it .
what to do?</p>

答:
follow these steps
1.In the Report Data pane, expand the Parameters node and right-click on the parameter, then click Parameter Properties.

2.In Prompt, type Select :.

3.In Data type, select datatype.

4.Click Available Values.

5.Select the Get values from a query option.

6.select value field and Label field

7.In default values select Get values from a query option.
8.From the Dataset drop-down list, select BusinessPersons.

9.From the Value field drop-down list, select BusinessEntityID.

10.Click OK.

ContentLicense: CC BY-SA 2.5

Body:
I can see the text box for my data set that having the

"select col1 from table name " as query. I want to populate dropdown instead of text box. I  have created the parameter for it .
what to do?


问:
Gradle error: Minimum supported Gradle version is 3.3. Current version is 3.2
When I today update Android Studio it write:  Minimum supported Gradle version is 3.3. Current version is 3.2 how can I solve this problem?

Here is my build.gradle

```<code>// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
</code>```

and second build.gradle:

```<code>apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "com.tosi.ex"
        minSdkVersion 14
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } }
}
repositories {
    mavenCentral()
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.2.1'
    compile 'com.android.support:design:25.2.1'
    compile 'com.github.ksoichiro:android-observablescrollview:1.5.0'
    compile 'com.android.support:support-v4:25.2.1'
    compile 'com.android.support:mediarouter-v7:25.2.1'
    compile 'com.google.android.gms:play-services:10.2.1'
    compile 'com.android.support:cardview-v7:25.2.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'uk.co.chrisjenx:calligraphy:2.2.0'
    testCompile 'junit:junit:4.12'
}
</code>```

gradle-wrapper.properties:

```<code>#Tue Mar 28 17:26:02 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.2-all.zip
</code>```

When I changed properties distributionUrl to 3.3-all.zip it stuck in refreshing
I don't know what to do with this problem. Please help me
Thank you very much

答:
I solved it with following these 3 steps. I hope, they will work for you.

Note: I am using Android Studio Bumblebee 2021.1.1

Click Sync Gradle.

Go to Tools section.

Click AGP Upgrade Assistant...

Click Run selected steps

If it does not work, clean and rebuild or close-open android studio.

Also this solution worked to solve these bugs:

cvc-complex-type.2.4.a: Invalid content was found...

Add Configuration...

Gradle error: Minimum supported Gradle version is...

Body:
When I today update Android Studio it write:  Minimum supported Gradle version is 3.3. Current version is 3.2 how can I solve this problem?

Here is my build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

and second build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "com.tosi.ex"
        minSdkVersion 14
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } }
}
repositories {
    mavenCentral()
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.2.1'
    compile 'com.android.support:design:25.2.1'
    compile 'com.github.ksoichiro:android-observablescrollview:1.5.0'
    compile 'com.android.support:support-v4:25.2.1'
    compile 'com.android.support:mediarouter-v7:25.2.1'
    compile 'com.google.android.gms:play-services:10.2.1'
    compile 'com.android.support:cardview-v7:25.2.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'uk.co.chrisjenx:calligraphy:2.2.0'
    testCompile 'junit:junit:4.12'
}

gradle-wrapper.properties:

#Tue Mar 28 17:26:02 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.2-all.zip

When I changed properties distributionUrl to 3.3-all.zip it stuck in refreshing
I don't know what to do with this problem. Please help me
Thank you very much


问:
MDC 101 Material Design Tutorial throwing error when npm install
I m getting loads of errors when i run npm install (I m using mac Catalina).

```starter npm install

> fsevents@1.2.7 install /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents
> node install

node-pre-gyp WARN Using needle for node-pre-gyp https download
node-pre-gyp WARN Tried to download(404): https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.2.7/fse-v1.2.7-node-v83-darwin-x64.tar.gz
node-pre-gyp WARN Pre-built binaries not found for fsevents@1.2.7 and node@14.15.3 (node-v83 ABI, unknown) (falling back to source compile with node-gyp)
  SOLINK_MODULE(target) Release/.node
  CXX(target) Release/obj.target/fse/fsevents.o
In file included from ../fsevents.cc:6:
In file included from ../../nan/nan.h:2722:
../../nan/nan_object_wrap.h:24:25: error: no member named 'IsNearDeath' in
      'Nan::Persistent<v8::Object, v8::NonCopyablePersistentTraits<v8::Object> >'
    assert(persistent().IsNearDeath());
           ~~~~~~~~~~~~ ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/assert.h:93:25: note:
      expanded from macro 'assert'
    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)
                        ^
In file included from ../fsevents.cc:6:
In file included from ../../nan/nan.h:2722:
../../nan/nan_object_wrap.h:127:26: error: no member named 'IsNearDeath' in
      'Nan::Persistent<v8::Object, v8::NonCopyablePersistentTraits<v8::Object> >'
    assert(wrap->handle_.IsNearDeath());
           ~~~~~~~~~~~~~ ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/assert.h:93:25: note:
      expanded from macro 'assert'
    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)
                        ^
In file included from ../fsevents.cc:6:
In file included from ../../nan/nan.h:2818:
../../nan/nan_typedarray_contents.h:34:43: warning: 'GetContents' is deprecated: Use
      GetBackingStore. See http://crbug.com/v8/9908. [-Wdeprecated-declarations]
      data   = static_cast<char*>(buffer->GetContents().Data()) + byte_offset;
                                          ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:5272:3: note:
      'GetContents' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use GetBackingStore. See http://crbug.com/v8/9908.")
  ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8config.h:402:39: note:
      expanded from macro 'V8_DEPRECATE_SOON'
# define V8_DEPRECATE_SOON(message) [[deprecated(message)]]
                                      ^
../fsevents.cc:43:32: error: no template named 'Handle' in namespace 'v8'
    static void Initialize(v8::Handle<v8::Object> exports);
                           ~~~~^
In file included from ../fsevents.cc:73:
../src/constants.cc:89:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagNone").ToLocalChecked()...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:90:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagMustScanSubDirs").ToLoc...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:91:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagUserDropped").ToLocalCh...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:92:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagKernelDropped").ToLocal...
  ~~~~~~~~^~~

                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:93:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagEventIdsWrapped").ToLoc...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^

In file included from ../fsevents.cc:73:
../src/constants.cc:94:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagHistoryDone").ToLocalCh...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:95:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagRootChanged").ToLocalCh...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:96:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagMount").ToLocalChecked(...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:97:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagUnmount").ToLocalChecke...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:98:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemCreated").ToLocalCh...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:99:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemRemoved").ToLocalCh...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:100:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemInodeMetaMod").ToLo...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:101:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemRenamed").ToLocalCh...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:102:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemModified").ToLocalC...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:103:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemFinderInfoMod").ToL...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:104:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemChangeOwner").ToLoc...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
1 warning and 20 errors generated.
make: *** [Release/obj.target/fse/fsevents.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)
gyp ERR! System Darwin 20.2.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/lib/binding/Release/node-v83-darwin-x64/fse.node" "--module_name=fse" "--module_path=/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/lib/binding/Release/node-v83-darwin-x64" "--napi_version=7" "--node_abi_napi=napi"
gyp ERR! cwd /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents
gyp ERR! node -v v14.15.3
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/lib/binding/Release/node-v83-darwin-x64/fse.node --module_name=fse --module_path=/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/lib/binding/Release/node-v83-darwin-x64 --napi_version=7 --node_abi_napi=napi' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1048:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
node-pre-gyp ERR! System Darwin 20.2.0
node-pre-gyp ERR! command "/usr/local/bin/node" "/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/node_modules/node-pre-gyp/bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents
node-pre-gyp ERR! node -v v14.15.3
node-pre-gyp ERR! node-pre-gyp -v v0.10.3
node-pre-gyp ERR! not ok
Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/lib/binding/Release/node-v83-darwin-x64/fse.node --module_name=fse --module_path=/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/lib/binding/Release/node-v83-darwin-x64 --napi_version=7 --node_abi_napi=napi' (1)

> fibers@4.0.1 install /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers
> node build.js || nodejs build.js

  CXX(target) Release/obj.target/fibers/src/fibers.o
../src/fibers.cc:899:12: error: no matching member function for call to 'Set'
                        target->Set(sym_yield, yield);
                        ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
../src/fibers.cc:903:8: error: no matching member function for call to 'Set'
                        fn->Set(sym_yield, yield);
                        ~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided

                                          ^
../src/fibers.cc:206:25: error: no matching member function for call to 'Set'
                info.GetReturnValue().Set(handle);
                ~~~~~~~~~~~~~~~~~~~~~~^~~
../src/fibers.cc:838:17: note: in instantiation of function template specialization
      'uni::Return<v8::Object>' requested here
                                return uni::Return(current->handle, info);

                 ^
5 errors generated.
make: *** [Release/obj.target/fibers/src/fibers.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)
gyp ERR! System Darwin 20.2.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--release"
gyp ERR! cwd material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers
gyp ERR! node -v v14.15.3
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
node-gyp exited with code: 1
Please make sure you are using a supported platform and node version. If you
would like to compile fibers on this machine please make sure you have setup your
build environment--
Windows + OS X instructions here: https://github.com/nodejs/node-gyp
Ubuntu users please run: `sudo apt-get install g++ build-essential`
RHEL users please run: `yum install gcc-c++` and `yum groupinstall 'Development Tools'`
Alpine users please run: `sudo apk add python make g++`
sh: nodejs: command not found
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules/fsevents):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 install: `node install`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! fibers@4.0.1 install: `node build.js || nodejs build.js`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the fibers@4.0.1 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!
➜  starter
```
<p>Then I tried the following code</p>
```npm i fsevents@latest -f --save-optional
```
<p>and try to start the server using<code>npm start</code></p>
<p>Then i hit the following error</p>
```    ➜  starter npm start

> mdc-101-web@0.0.0 start /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter
> webpack-dev-server --progress

## There is an issue with `node-fibers` ##
`/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/bin/darwin-x64-83/fibers.node` is missing.

Try running this to fix the issue: /usr/local/bin/node /Users/gayan/Desktop/Web\ Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/build
Error: Cannot find module '/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/bin/darwin-x64-83/fibers'
Require stack:
- /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/fibers.js
- /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/webpack.config.js
- /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/webpack/bin/convert-argv.js
- /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/webpack-dev-server/bin/webpack-dev-server.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/fibers.js:14:39)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/fibers.js:23
        throw new Error('Missing binary. See message above.');
        ^

Error: Missing binary. See message above.
    at Object.<anonymous> (/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/fibers.js:23:9)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at getStyleUse (/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/webpack.config.js:16:16)
    at Object.<anonymous> (/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/webpack.config.js:32:14)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! mdc-101-web@0.0.0 start: `webpack-dev-server --progress`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the mdc-101-web@0.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/gayan/.npm/_logs/2020-12-19T14_20_40_046Z-debug.log
```
<p>Then I tried the following</p>
```npm uninstall fibers
npm install fibers
npm install
```

after that my server started successfully

However i do not understand why this error was coming.

Can anyone help me why the tutorial in the following link does not work and why the those errors occurs

Thanks in advance.

https://codelabs.developers.google.com/codelabs/mdc-101-web#1

答:
There's a note on the node-fibers front page README about this. Fibers will not be supported on nodejs v16.x or higher.

https://github.com/laverdet/node-fibers/issues/451

https://github.com/laverdet/node-fibers

Body:
I m getting loads of errors when i run npm install (I m using mac Catalina).

starter npm install

> fsevents@1.2.7 install /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents
> node install

node-pre-gyp WARN Using needle for node-pre-gyp https download
node-pre-gyp WARN Tried to download(404): https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.2.7/fse-v1.2.7-node-v83-darwin-x64.tar.gz
node-pre-gyp WARN Pre-built binaries not found for fsevents@1.2.7 and node@14.15.3 (node-v83 ABI, unknown) (falling back to source compile with node-gyp)
  SOLINK_MODULE(target) Release/.node
  CXX(target) Release/obj.target/fse/fsevents.o
In file included from ../fsevents.cc:6:
In file included from ../../nan/nan.h:2722:
../../nan/nan_object_wrap.h:24:25: error: no member named 'IsNearDeath' in
      'Nan::Persistent<v8::Object, v8::NonCopyablePersistentTraits<v8::Object> >'
    assert(persistent().IsNearDeath());
           ~~~~~~~~~~~~ ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/assert.h:93:25: note:
      expanded from macro 'assert'
    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)
                        ^
In file included from ../fsevents.cc:6:
In file included from ../../nan/nan.h:2722:
../../nan/nan_object_wrap.h:127:26: error: no member named 'IsNearDeath' in
      'Nan::Persistent<v8::Object, v8::NonCopyablePersistentTraits<v8::Object> >'
    assert(wrap->handle_.IsNearDeath());
           ~~~~~~~~~~~~~ ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/assert.h:93:25: note:
      expanded from macro 'assert'
    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)
                        ^
In file included from ../fsevents.cc:6:
In file included from ../../nan/nan.h:2818:
../../nan/nan_typedarray_contents.h:34:43: warning: 'GetContents' is deprecated: Use
      GetBackingStore. See http://crbug.com/v8/9908. [-Wdeprecated-declarations]
      data   = static_cast<char*>(buffer->GetContents().Data()) + byte_offset;
                                          ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:5272:3: note:
      'GetContents' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use GetBackingStore. See http://crbug.com/v8/9908.")
  ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8config.h:402:39: note:
      expanded from macro 'V8_DEPRECATE_SOON'
# define V8_DEPRECATE_SOON(message) [[deprecated(message)]]
                                      ^
../fsevents.cc:43:32: error: no template named 'Handle' in namespace 'v8'
    static void Initialize(v8::Handle<v8::Object> exports);
                           ~~~~^
In file included from ../fsevents.cc:73:
../src/constants.cc:89:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagNone").ToLocalChecked()...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:90:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagMustScanSubDirs").ToLoc...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:91:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagUserDropped").ToLocalCh...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:92:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagKernelDropped").ToLocal...
  ~~~~~~~~^~~

                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:93:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagEventIdsWrapped").ToLoc...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^

In file included from ../fsevents.cc:73:
../src/constants.cc:94:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagHistoryDone").ToLocalCh...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:95:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagRootChanged").ToLocalCh...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:96:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagMount").ToLocalChecked(...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:97:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagUnmount").ToLocalChecke...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:98:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemCreated").ToLocalCh...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:99:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemRemoved").ToLocalCh...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:100:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemInodeMetaMod").ToLo...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:101:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemRenamed").ToLocalCh...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:102:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemModified").ToLocalC...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:103:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemFinderInfoMod").ToL...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
In file included from ../fsevents.cc:73:
../src/constants.cc:104:11: error: no matching member function for call to 'Set'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemChangeOwner").ToLoc...
  ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
1 warning and 20 errors generated.
make: *** [Release/obj.target/fse/fsevents.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)
gyp ERR! System Darwin 20.2.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/lib/binding/Release/node-v83-darwin-x64/fse.node" "--module_name=fse" "--module_path=/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/lib/binding/Release/node-v83-darwin-x64" "--napi_version=7" "--node_abi_napi=napi"
gyp ERR! cwd /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents
gyp ERR! node -v v14.15.3
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/lib/binding/Release/node-v83-darwin-x64/fse.node --module_name=fse --module_path=/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/lib/binding/Release/node-v83-darwin-x64 --napi_version=7 --node_abi_napi=napi' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1048:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
node-pre-gyp ERR! System Darwin 20.2.0
node-pre-gyp ERR! command "/usr/local/bin/node" "/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/node_modules/node-pre-gyp/bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents
node-pre-gyp ERR! node -v v14.15.3
node-pre-gyp ERR! node-pre-gyp -v v0.10.3
node-pre-gyp ERR! not ok
Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/lib/binding/Release/node-v83-darwin-x64/fse.node --module_name=fse --module_path=/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fsevents/lib/binding/Release/node-v83-darwin-x64 --napi_version=7 --node_abi_napi=napi' (1)

> fibers@4.0.1 install /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers
> node build.js || nodejs build.js

  CXX(target) Release/obj.target/fibers/src/fibers.o
../src/fibers.cc:899:12: error: no matching member function for call to 'Set'
                        target->Set(sym_yield, yield);
                        ~~~~~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3673:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
../src/fibers.cc:903:8: error: no matching member function for call to 'Set'
                        fn->Set(sym_yield, yield);
                        ~~~~^~~
/Users/gayan/Library/Caches/node-gyp/14.15.3/include/node/v8.h:3670:37: note: candidate
      function not viable: requires 3 arguments, but 2 were provided

                                          ^
../src/fibers.cc:206:25: error: no matching member function for call to 'Set'
                info.GetReturnValue().Set(handle);
                ~~~~~~~~~~~~~~~~~~~~~~^~~
../src/fibers.cc:838:17: note: in instantiation of function template specialization
      'uni::Return<v8::Object>' requested here
                                return uni::Return(current->handle, info);

                 ^
5 errors generated.
make: *** [Release/obj.target/fibers/src/fibers.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)
gyp ERR! System Darwin 20.2.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--release"
gyp ERR! cwd material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers
gyp ERR! node -v v14.15.3
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
node-gyp exited with code: 1
Please make sure you are using a supported platform and node version. If you
would like to compile fibers on this machine please make sure you have setup your
build environment--
Windows + OS X instructions here: https://github.com/nodejs/node-gyp
Ubuntu users please run: `sudo apt-get install g++ build-essential`
RHEL users please run: `yum install gcc-c++` and `yum groupinstall 'Development Tools'`
Alpine users please run: `sudo apk add python make g++`
sh: nodejs: command not found
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules/fsevents):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 install: `node install`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! fibers@4.0.1 install: `node build.js || nodejs build.js`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the fibers@4.0.1 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!
➜  starter

Then I tried the following code

npm i fsevents@latest -f --save-optional

and try to start the server usingnpm start

Then i hit the following error

    ➜  starter npm start

> mdc-101-web@0.0.0 start /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter
> webpack-dev-server --progress

## There is an issue with `node-fibers` ##
`/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/bin/darwin-x64-83/fibers.node` is missing.

Try running this to fix the issue: /usr/local/bin/node /Users/gayan/Desktop/Web\ Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/build
Error: Cannot find module '/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/bin/darwin-x64-83/fibers'
Require stack:
- /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/fibers.js
- /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/webpack.config.js
- /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/webpack/bin/convert-argv.js
- /Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/webpack-dev-server/bin/webpack-dev-server.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/fibers.js:14:39)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/fibers.js:23
        throw new Error('Missing binary. See message above.');
        ^

Error: Missing binary. See message above.
    at Object.<anonymous> (/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/node_modules/fibers/fibers.js:23:9)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at getStyleUse (/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/webpack.config.js:16:16)
    at Object.<anonymous> (/Users/gayan/Desktop/Web Development/material-components-web-codelabs-master/mdc-101/starter/webpack.config.js:32:14)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! mdc-101-web@0.0.0 start: `webpack-dev-server --progress`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the mdc-101-web@0.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/gayan/.npm/_logs/2020-12-19T14_20_40_046Z-debug.log

Then I tried the following

npm uninstall fibers
npm install fibers
npm install

after that my server started successfully

However i do not understand why this error was coming.

Can anyone help me why the tutorial in the following link does not work and why the those errors occurs

Thanks in advance.

https://codelabs.developers.google.com/codelabs/mdc-101-web#1


问:
while loop keeps executing
I don't understand why the while keeps executing even though I have written the name "gabriel" or the name "tommy"</p>
```<code>nombre = ""
while nombre != "gabriel" or nombre !="tommy":
nombre = input()
if nombre != "gabriel" or nombre != "tommy":
    print("ingrese su nombre nuevamente")
else:
    print("su nombre es ")
    break
</code>```

答:
You are using or where you should be using and.  However, you are also making two checks where you only need one, and initializing nombre unnecessarily. Consider this instead:

```<code>while True:
    nombre = input()
    if nombre != "gabriel" and nombre != "tommy":
        print("ingress su nombre nuevamente")
    else:
        print("su nombre es", nombre)
        break
</code>```

or using or correctly:

```<code>while True:
    nombre = input()
    if nombre == "gabriel" or nombre == "tommy":
        print("su nombre es", nombre)
        break

    print("ingress su nombre nuevamente")
</code>```

Title: while loop keeps executing

Body:
I don't understand why the while keeps executing even though I have written the name "gabriel" or the name "tommy"

nombre = ""
while nombre != "gabriel" or nombre !="tommy":
nombre = input()
if nombre != "gabriel" or nombre != "tommy":
    print("ingrese su nombre nuevamente")
else:
    print("su nombre es ")
    break

Body:
You are using or where you should be using and.  However, you are also making two checks where you only need one, and initializing nombre unnecessarily. Consider this instead:

while True:
    nombre = input()
    if nombre != "gabriel" and nombre != "tommy":
        print("ingress su nombre nuevamente")
    else:
        print("su nombre es", nombre)
        break

or using or correctly:

while True:
    nombre = input()
    if nombre == "gabriel" or nombre == "tommy":
        print("su nombre es", nombre)
        break

    print("ingress su nombre nuevamente")


问:
String.fromCharCode() not working on anything higher than 127183

The problem is that the String.fromCharCode() method return an incorrect match (or has some limitation (not sure which exactly)

I have tried some of the char codes from here.
And all of the items under 12953 are working fine. But if you try anything, starting from 126980 it stops working and displays .

However, if I try checking it here, it finds it.

Is it because something is missing? or it could be because of "surrogate pair"(the characters that have more than one code unit)?

By running the following lines of code:

const emojis = [12953, 126980]; // ㊙,

console.log(String.fromCharCode(emojis[0])); // displayed correctly as it is ㊙
console.log(String.fromCharCode(emojis[1])); //  is dispalyed instead of ```

答:
After fully reading the docs page, I have found

And there are methods to go from one state to another for some characters (e.g. emojis):
charCodeAt() and codePointAt() are used to get the hexadecimal values, and the latter one is used for "surrogate pair" or the values that go outside of the 65535 (216) range more about these two here.

Quote from here

For this reason, it's more convenient to use String.fromCodePoint()
(part of the ES2015 standard), which allows for returning
supplementary characters based on their actual code point value. For
example, String.fromCodePoint(0x1F303) returns code point U+1F303
"Night with Stars".

This is exactly what i need String.fromCodePoint().
That allows me to convert the hexadecimal value into emoji.

and here is the final code:

const emojis = [12953, 126980]; // ㊙,

console.log(String.fromCodePoint(emojis[0])); // displayed correctly as it is ㊙
console.log(String.fromCodePoint(emojis[1])); // displayed correctly as it is ```


问:
CSS: how to add background but not only in the text
I'm making a copy of the page of Google as a school project and i'm trying to set up the background color of the last part of the footer but it's only filling the color around the letters, how I can fill the whole part of background there?

p {
  padding: 15px 30px;
  font-size: 15px;
  border-bottom: 1px solid #f2f2f2;
  background-color: #f2f2f2;
  color: #70757a;
  display: block;
}

.izq,
.der {
  font-size: 14px;
  color: #70757a;
  margin-block-end: 10px;
  background-color: #f2f2f2;
}

.izq {
  margin-left: 40px;
  float: left;
}

.der {
  margin-right: 40px;
  float: right;
}```
<pre class="snippet-code-html lang-html prettyprint-override"><code><footer>
  <div>
    <p>México</p>
  </div>
  <div id="abajo">Sobre Google
    Publicidad
    Negocios
    Cómo funciona la Búsqueda
    Privacidad
    Condiciones
    Preferencias </div>
</footer></code>```

答:
Hey I'm still learning this stuff but try this CSS?

I think the float:left under .izq was messing with it.

footer {
  background-color: #f2f2f2;
}

p {
  padding: 15px 30px;
  font-size: 15px;
  border-bottom: 1px solid #f2f2f2;
  color: #70757a;
  display: block;
}

.izq,
.der {
  font-size: 14px;
  color: #70757a;
  margin-block-end: 10px;
}

.izq {
  margin-left: 40px;
}

.der {
  margin-right: 40px;
  float: right;
}```
<pre class="snippet-code-html lang-html prettyprint-override"><code><footer>
  <div>
    <p>México</p>
  </div>
  <div id="abajo">Sobre Google
    Publicidad
    Negocios
    Cómo funciona la Búsqueda
    Privacidad
    Condiciones
    Preferencias </div>
</footer></code>```

Body:
I'm making a copy of the page of Google as a school project and i'm trying to set up the background color of the last part of the footer but it's only filling the color around the letters, how I can fill the whole part of background there?

p {
  padding: 15px 30px;
  font-size: 15px;
  border-bottom: 1px solid #f2f2f2;
  background-color: #f2f2f2;
  color: #70757a;
  display: block;
}

.izq,
.der {
  font-size: 14px;
  color: #70757a;
  margin-block-end: 10px;
  background-color: #f2f2f2;
}

.izq {
  margin-left: 40px;
  float: left;
}

.der {
  margin-right: 40px;
  float: right;
}

México

Sobre Google
    Publicidad
    Negocios
    Cómo funciona la Búsqueda
    Privacidad
    Condiciones
    Preferencias

Body:
Hey I'm still learning this stuff but try this CSS?

I think the float:left under .izq was messing with it.

footer {
  background-color: #f2f2f2;
}

p {
  padding: 15px 30px;
  font-size: 15px;
  border-bottom: 1px solid #f2f2f2;
  color: #70757a;
  display: block;
}

.izq,
.der {
  font-size: 14px;
  color: #70757a;
  margin-block-end: 10px;
}

.izq {
  margin-left: 40px;
}

.der {
  margin-right: 40px;
  float: right;
}

<footer>
  <div>
    <p>México</p>
  </div>
  <div id="abajo"><a href="https://about.google/?utm_source=google-MX&utm_medium=referral&utm_campaign=hp-footer&fg=1" class="izq">Sobre Google</a>
    <a href="https://ads.google.com/intl/es-419_mx/home/?subid=ww-ww-et-g-awa-a-g_hpafoot1_1!o2&utm_source=google.com&utm_medium=referral&utm_campaign=google_hpafooter&fg=1" class="izq">Publicidad</a>
    <a href="https://smallbusiness.withgoogle.com/intl/es-419_mx/?subid=ww-ww-et-g-awa-a-g_hpbfoot1_1!o2&utm_source=google&utm_medium=ep&utm_campaign=google_hpbfooter&utm_content=google_hpbfooter&gmbsrc=ww-ww-et-gs-z-gmb-s-z-u~sb-g4sb_srvcs-u&c=MX#!/" class="izq">Negocios</a>
    <a href="https://www.google.com/search/howsearchworks/?fg=1" class="izq">Cómo funciona la Búsqueda</a>
    <a href="https://policies.google.com/privacy?hl=es-419&fg=1" class="der">Privacidad</a>
    <a href="https://policies.google.com/terms?hl=es-419&fg=1" class="der">Condiciones</a>
    <a href="" class="der">Preferencias</a> </div>
</footer>